本文整理汇总了C#中EvilDICOM.Core.IO.Reading.DICOMBinaryReader.ReadBytes方法的典型用法代码示例。如果您正苦于以下问题:C# DICOMBinaryReader.ReadBytes方法的具体用法?C# DICOMBinaryReader.ReadBytes怎么用?C# DICOMBinaryReader.ReadBytes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EvilDICOM.Core.IO.Reading.DICOMBinaryReader
的用法示例。
在下文中一共展示了DICOMBinaryReader.ReadBytes方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ReadBigEndian
/// <summary>
/// Reads the data from an element encoded in big endian byte order
/// </summary>
/// <param name="lengthToRead">the length of the data</param>
/// <param name="dr">the binary reader which is reading the DICOM object</param>
/// <returns>the data from this element</returns>
public static byte[] ReadBigEndian(int lengthToRead, DICOMBinaryReader dr)
{
if (lengthToRead != -1)
{
return dr.ReadBytes(lengthToRead);
}
int length = SequenceReader.ReadIndefiniteLengthBigEndian(dr);
byte[] seqBytes = dr.ReadBytes(length);
dr.Skip(8);
return seqBytes;
}
示例2: ReadLittleEndian
/// <summary>
/// Reads the data from an element encoded in little endian byte order
/// </summary>
/// <param name="lengthToRead">the length of the data</param>
/// <param name="dr">the binary reader which is reading the DICOM object</param>
/// <returns>the data from this element</returns>
public static byte[] ReadLittleEndian(int lengthToRead, DICOMBinaryReader dr, TransferSyntax syntax)
{
if (lengthToRead != -1)
{
return dr.ReadBytes(lengthToRead);
}
int length = SequenceReader.ReadIndefiniteLengthLittleEndian(dr, syntax);
byte[] seqBytes = dr.ReadBytes(length);
dr.Skip(8);
return seqBytes;
}
示例3: ReadPDVFragment
public static PDVItemFragment ReadPDVFragment(DICOMBinaryReader dr, int length)
{
var pif = new PDVItemFragment();
byte messageHeader = dr.Take(1)[0];
pif.IsCommandObject = messageHeader.GetBit(0);
pif.IsLastItem = messageHeader.GetBit(1);
pif.Data = dr.ReadBytes(length - 1);
return pif;
}
示例4: ReadLittleEndian
/// <summary>
/// Reads the length in little endian byte format from a series of bytes in a stream. The number of bytes is
/// automatically determined from
/// VR.
/// </summary>
/// <param name="vr">the value representation of the element</param>
/// <param name="dr">the binary stream with a current position on the length parameter</param>
/// <returns></returns>
public static int ReadLittleEndian(VR vr, DICOMBinaryReader dr)
{
int length = 0;
switch (VRDictionary.GetEncodingFromVR(vr))
{
case VREncoding.Implicit:
byte[] byteLength = dr.ReadBytes(4);
length = BitConverter.ToInt32(byteLength, 0);
break;
case VREncoding.ExplicitLong:
byteLength = dr.Skip(2).ReadBytes(4);
length = BitConverter.ToInt32(byteLength, 0);
break;
case VREncoding.ExplicitShort:
byteLength = dr.ReadBytes(2);
length = BitConverter.ToUInt16(byteLength, 0);
break;
}
return length;
}
示例5: ReadBigEndian
public static DICOMObject ReadBigEndian(DICOMBinaryReader dr, TransferSyntax syntax)
{
DICOMObject d;
int length = LengthReader.ReadLittleEndian(VR.Null, dr.Skip(4));
if (LengthReader.IsIndefinite(length))
{
d = ReadIndefiniteBigEndian(dr, syntax);
}
else
{
d = DICOMObjectReader.ReadObject(dr.ReadBytes(length), syntax);
}
return d;
}
示例6: Read
/// <summary>
/// Reads the first 132 bits of a file to check if it contains the DICOM preamble.
/// </summary>
/// <param name="dr">a stream containing the bits of the file</param>
/// <returns>a boolean indicating whether or not the DICOM preamble was in the file</returns>
public static bool Read(DICOMBinaryReader dr)
{
byte[] preamble = new byte[132];
try
{
dr.ReadBytes(preamble, 0, 132);
}
catch (Exception)
{
throw new Exception("Could not read 128 null bit preamble. Perhaps file is too short");
}
if (preamble[128] != 'D' || preamble[129] != 'I' || preamble[130] != 'C' || preamble[131] != 'M')
{
Console.WriteLine("Missing characters D I C M in bits 128-131. Technically not a valid DICOM file. Will try to read anyway.");
dr.Reset();
return false;
}
else
{
return true;
}
}
示例7: IsEndOfSequenceItemBigEndian
private static bool IsEndOfSequenceItemBigEndian(DICOMBinaryReader dr)
{
byte[] bytes = dr.ReadBytes(8);
return ByteHelper.AreEqual(bytes, _endOfSequenceItem_BE);
}
示例8: ReadLittleEndian
public static Tag ReadLittleEndian(DICOMBinaryReader dr)
{
byte[] tag = dr.ReadBytes(4);
tag = new[] {tag[1], tag[0], tag[3], tag[2]};
return CreateTag(tag);
}
示例9: ReadBigEndian
public static Tag ReadBigEndian(DICOMBinaryReader dr)
{
byte[] tag = dr.ReadBytes(4);
return CreateTag(tag);
}
示例10: ReadBigEndian
/// <summary>
/// Reads the length in big endian byte format from a series of bytes in a stream. The number of bytes is automatically
/// determined from
/// VR.
/// </summary>
/// <param name="vr">the value representation of the element</param>
/// <param name="dr">the binary stream with a current position on the length parameter</param>
/// <returns></returns>
public static int ReadBigEndian(VR vr, DICOMBinaryReader dr)
{
byte[] bytes = null;
switch (VRDictionary.GetEncodingFromVR(vr))
{
case VREncoding.Implicit:
bytes = dr.ReadBytes(4);
break;
case VREncoding.ExplicitLong:
bytes = dr.Skip(2).ReadBytes(4);
break;
case VREncoding.ExplicitShort:
bytes = dr.ReadBytes(2);
break;
}
return ReadBigEndian(bytes);
}