private void HandleReferedToSegmentNumbers(SegmentHeader segmentHeader) { int referredToSegmentCount = segmentHeader.GetReferredToSegmentCount(); int[] referredToSegments = new int[referredToSegmentCount]; int segmentNumber = segmentHeader.GetSegmentNumber(); if (segmentNumber <= 256) { for (int i = 0; i < referredToSegmentCount; i++) { referredToSegments[i] = reader.Readbyte(); } } else if (segmentNumber <= 65536) { short[] buf = new short[2]; for (int i = 0; i < referredToSegmentCount; i++) { reader.Readbyte(buf); referredToSegments[i] = BinaryOperation.GetInt16(buf); } } else { short[] buf = new short[4]; for (int i = 0; i < referredToSegmentCount; i++) { reader.Readbyte(buf); referredToSegments[i] = BinaryOperation.GetInt32(buf); } } segmentHeader.SetReferredToSegments(referredToSegments); if (JBIG2StreamDecoder.debug) { Console.WriteLine("referredToSegments = "); for (int i = 0; i < referredToSegments.Length; i++) { Console.WriteLine(referredToSegments[i] + " "); } Console.WriteLine(""); } }