public static int ReadIndefiniteLengthBigEndian(DICOMBinaryReader dr) { var startingPos = dr.StreamPosition; while (!IsEndOfSequenceBigEndian(dr)) { dr.StreamPosition -= 8; SequenceItemReader.SkipItemBigEndian(dr); } return(CalculateLength(dr, startingPos) - 8); }
public static int ReadIndefiniteLengthLittleEndian(DICOMBinaryReader dr, TransferSyntax syntax) { var startingPos = dr.StreamPosition; while (!IsEndOfSequenceLittleEndian(dr)) { dr.StreamPosition -= 8; SequenceItemReader.SkipItemLittleEndian(dr, syntax); } return(CalculateLength(dr, startingPos) - 8); }
public static List <DICOMObject> ReadItems(byte[] data, TransferSyntax syntax) { var objects = new List <DICOMObject>(); using (var dr = new DICOMBinaryReader(data)) { while (dr.StreamPosition < dr.StreamLength) { switch (syntax) { case TransferSyntax.EXPLICIT_VR_BIG_ENDIAN: objects.Add(SequenceItemReader.ReadBigEndian(dr, syntax)); break; default: objects.Add(SequenceItemReader.ReadLittleEndian(dr, syntax)); break; } } } return(objects); }