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); }
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); } }
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); }
public void Initialize() { _fs = File.OpenRead("test_LRtCP_L2R3T512.jp2"); _jp2 = Jp2File.Open(_fs); _cs = _jp2.OpenCodestream(); }