本文整理汇总了C#中ClearCanvas.Dicom.DicomMessage.ChangeTransferSyntax方法的典型用法代码示例。如果您正苦于以下问题:C# DicomMessage.ChangeTransferSyntax方法的具体用法?C# DicomMessage.ChangeTransferSyntax怎么用?C# DicomMessage.ChangeTransferSyntax使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ClearCanvas.Dicom.DicomMessage
的用法示例。
在下文中一共展示了DicomMessage.ChangeTransferSyntax方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SelectPresentationContext
private byte SelectPresentationContext(ClientAssociationParameters association, DicomFile file, out DicomMessage message)
{
byte pcid = 0;
message = new DicomMessage(file);
// If Lossy compressed & we have a matching context, send
// If we don't have a codec, just return
if (message.TransferSyntax.Encapsulated && message.TransferSyntax.LossyCompressed)
{
pcid = association.FindAbstractSyntaxWithTransferSyntax(message.SopClass, message.TransferSyntax);
if (pcid != 0) return pcid;
if (DicomCodecRegistry.GetCodec(message.TransferSyntax) == null)
return 0;
}
// If the image is lossless compressed & we don't have a codec, send if we
// can as is.
if (message.TransferSyntax.Encapsulated && message.TransferSyntax.LosslessCompressed)
{
if (DicomCodecRegistry.GetCodec(message.TransferSyntax) == null)
{
pcid = association.FindAbstractSyntaxWithTransferSyntax(message.SopClass, message.TransferSyntax);
return pcid;
}
}
// If lossless compressed & requesting lossless syntax, just send as is
if (message.TransferSyntax.Encapsulated
&& message.TransferSyntax.LosslessCompressed
&& ((_sendRequest.CompressionType == CompressionType.Rle
|| _sendRequest.CompressionType == CompressionType.JpegLossless
|| _sendRequest.CompressionType == CompressionType.J2KLossless)))
{
pcid = association.FindAbstractSyntaxWithTransferSyntax(message.SopClass, message.TransferSyntax);
if (pcid != 0) return pcid;
}
if (_sendRequest.CompressionType == CompressionType.Rle)
{
pcid = association.FindAbstractSyntaxWithTransferSyntax(message.SopClass, TransferSyntax.RleLossless);
if (pcid != 0)
{
return pcid;
}
}
else if (_sendRequest.CompressionType == CompressionType.JpegLossless)
{
pcid = association.FindAbstractSyntaxWithTransferSyntax(message.SopClass, TransferSyntax.JpegLosslessNonHierarchicalFirstOrderPredictionProcess14SelectionValue1);
if (pcid != 0)
{
return pcid;
}
}
else if (_sendRequest.CompressionType == CompressionType.J2KLossless)
{
pcid = association.FindAbstractSyntaxWithTransferSyntax(message.SopClass, TransferSyntax.Jpeg2000ImageCompressionLosslessOnly);
if (pcid != 0)
{
return pcid;
}
}
else if (_sendRequest.CompressionType == CompressionType.J2KLossy)
{
pcid = association.FindAbstractSyntaxWithTransferSyntax(message.SopClass, TransferSyntax.Jpeg2000ImageCompression);
if (pcid != 0)
{
var doc = new XmlDocument();
XmlElement element = doc.CreateElement("compress");
doc.AppendChild(element);
XmlAttribute syntaxAttribute = doc.CreateAttribute("syntax");
syntaxAttribute.Value = TransferSyntax.Jpeg2000ImageCompressionUid;
element.Attributes.Append(syntaxAttribute);
decimal ratio = 100.0m / _sendRequest.CompressionLevel;
XmlAttribute ratioAttribute = doc.CreateAttribute("ratio");
ratioAttribute.Value = ratio.ToString(CultureInfo.InvariantCulture);
element.Attributes.Append(ratioAttribute);
syntaxAttribute = doc.CreateAttribute("convertFromPalette");
syntaxAttribute.Value = true.ToString(CultureInfo.InvariantCulture);
element.Attributes.Append(syntaxAttribute);
IDicomCodecFactory[] codecs = DicomCodecRegistry.GetCodecFactories();
foreach (IDicomCodecFactory codec in codecs)
if (codec.CodecTransferSyntax.Equals(TransferSyntax.Jpeg2000ImageCompression))
{
try
{
if (message.TransferSyntax.Encapsulated)
{
message.ChangeTransferSyntax(TransferSyntax.ExplicitVrLittleEndian);
message.TransferSyntax = TransferSyntax.ExplicitVrLittleEndian;
}
message.ChangeTransferSyntax(TransferSyntax.Jpeg2000ImageCompression,
codec.GetDicomCodec(),
codec.GetCodecParameters(doc));
//.........这里部分代码省略.........