Пример #1
0
        public void CopyTilePartTest()
        {
            _mem.Seek(0, SeekOrigin.Begin);
            var tpout = Jp2File
                        .Open(_mem)
                        .OpenCodestream()
                        .OpenTilePart(0, 0);
            var tpin = _jp2.OpenCodestream().OpenTilePart(0, 0);

            Assert.AreEqual(tpin.FirstChildOffset, tpout.FirstChildOffset);
            Assert.AreEqual(tpin.TotalPacketLength, tpout.TotalPacketLength);
            // lets check if SOT and PLT markers are the same

            _mem.Seek(tpout.Position, SeekOrigin.Begin);
            _fs.Seek(tpin.Position, SeekOrigin.Begin);

            int totalCount = (int)tpin.FirstChildOffset;

            // compare SOT and PLT markers
            CompareStreams(totalCount);
            // compare packet content
            _mem.Seek(tpout.Position + tpout.FirstChildOffset,
                      SeekOrigin.Begin);
            _fs.Seek(tpin.Position + tpin.FirstChildOffset,
                     SeekOrigin.Begin);
            CompareStreams((int)tpin.TotalPacketLength);
        }
Пример #2
0
        private void CopyTile(ushort tIdx, Jp2File dstJp2)
        {
            JP2Codestream src = OpenJp2(tIdx).OpenCodestream();
            JP2Codestream dst = dstJp2.OpenCodestream();

            ThrowIfDifferentInputs(_firstCodestream, src);
            for (int r = 0; r <= src.DecompositionLevels; r++)
            {
                CopyTileResLevel(dst, src, tIdx, r);
            }
        }
Пример #3
0
        public void OpenImage()
        {
            Jp2File jp2 = Jp2File.Open(_fs);

            Assert.IsNotNull(jp2);
            JP2Codestream cs = jp2.OpenCodestream();

            Assert.IsNotNull(cs);
            Assert.IsNull(cs.Parent);
            Assert.AreEqual <Size>(cs.ImageSize, Image.Default.ImageSize);
            Assert.AreEqual <Size>(cs.TileSize, Image.Default.ImageSize);
            Assert.AreEqual(cs.TileCount, new Size(1, 1));
            Assert.AreEqual(cs.Components, Image.Default.Components);
            Assert.AreEqual(cs.Progression, Image.Default.Progression);
            Assert.AreEqual(cs.ImageOffset, Point.Empty);
            Assert.AreEqual(cs.TileOffset, Point.Empty);
            Assert.AreEqual(cs.DecompositionLevels, Image.Default.Decompositions);
            Assert.AreEqual(cs.QualityLayers, 1);

            int tileparts = cs.OpenChildren().Count();

            Assert.AreEqual(1, tileparts);

            _fs.Seek(0, SeekOrigin.Begin);
            long socOffset = Find(_fs, (ushort)MarkerType.SOC);
            long sizOffset = Find(_fs, (ushort)MarkerType.SIZ);
            long sotOffset = Find(_fs, (ushort)MarkerType.SOT);
            long sodOffset = Find(_fs, (ushort)MarkerType.SOD);
            long eocOffset = Find(_fs, (ushort)MarkerType.EOC);

            Assert.AreEqual(socOffset, cs.Position);
            Assert.AreEqual(sizOffset, cs.Position + 2);
            Assert.AreEqual(sotOffset, cs.Position + cs.FirstChildOffset);
            long sodOffsetFromCs = cs.Position + cs.FirstChildOffset;

            sodOffsetFromCs += cs.OpenTilePart(0, 0).FirstChildOffset - 2;
            Assert.AreEqual(sodOffset, sodOffsetFromCs);
            Assert.AreEqual(eocOffset, cs.Position + cs.Length - 2);
        }
Пример #4
0
 public void Initialize()
 {
     _fs  = File.OpenRead("test_LRtCP_L2R3T512.jp2");
     _jp2 = Jp2File.Open(_fs);
     _cs  = _jp2.OpenCodestream();
 }