public void CountTilePartsTest()
        {
            // in LRCP progression, created a tile-part for
            // each resolution level and quality layer.
            // make sure we have enumerated all the tile-parts.
            Assert.AreEqual <Size>(_cs.TileSize, Image.Default.TileSize);
            Assert.AreEqual <Size>(_cs.ImageSize, Image.Default.ImageSize);
            Assert.AreEqual <Size>(_cs.TileCount, Image.Default.TileCount);

            Assert.AreEqual(_cs.Progression, ProgressionOrder.LRCP);

            Assert.AreEqual(_cs.DecompositionLevels, 2);
            Assert.AreEqual(_cs.QualityLayers, 2);

            int  tileparts = _cs.OpenChildren().Count();
            Size tc        = Image.Default.TileCount;
            int  expected  = tc.Width * tc.Height;

            expected *= _cs.QualityLayers;
            expected *= (_cs.DecompositionLevels + 1);
            Assert.AreEqual(tileparts, expected);
        }
Beispiel #2
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);
        }