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); }
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); }