public void DecompressBitStreamWithNoMarkerStart() { var compressed = new byte[] { 0x33, 0x33 }; var exception = Assert.Throws <InvalidDataException>(() => JpegLSCodec.Decompress(compressed)); Assert.AreEqual(JpegLSError.MissingJpegMarkerStart, exception.Data["JpegLSError"]); }
public void DecodeBitStreamWithUnsupportedEncoding() { var compressed = new byte[] { 0xFF, 0xD8, // Start Of Image (JPEG_SOI) 0xFF, 0xC3, // Start Of Frame (lossless, huffman) (JPEG_SOF_3) 0x00, 0x00 // Lenght of data of the marker }; var exception = Assert.Throws <InvalidDataException>(() => JpegLSCodec.Decompress(compressed)); Assert.AreEqual(JpegLSError.UnsupportedEncoding, exception.Data["JpegLSError"]); }
public void TestDecodeBitStreamWithUnknownJpegMarker() { var compressed = new byte[] { 0xFF, 0xD8, // Start Of Image (JPEG_SOI) 0xFF, 0x01, // Undefined marker 0x00, 0x00 // Lenght of data of the marker }; var exception = Assert.Throws <InvalidDataException>(() => JpegLSCodec.Decompress(compressed)); Assert.AreEqual(JpegLSError.UnknownJpegMarker, exception.Data["JpegLSError"]); }
public void CompressOneByOneBlackAndWhite() { var info = new JpegLSMetadataInfo(1, 1, 1, 1); var uncompressedOriginal = new byte[] { 1 }; var compressedSegment = JpegLSCodec.Compress(info, uncompressedOriginal); var compressed = new byte[compressedSegment.Count]; Array.Copy(compressedSegment.Array, compressed, compressed.Length); var uncompressed = JpegLSCodec.Decompress(compressed); Assert.AreEqual(info.UncompressedSize, uncompressed.Length); Assert.AreEqual(uncompressedOriginal, uncompressed); }
public void Decompress() { var source = ReadAllBytes("T8C0E0.JLS"); var expected = ReadAllBytes("TEST8.PPM", 15); var uncompressed = JpegLSCodec.Decompress(source); var info = JpegLSCodec.GetMetadataInfo(source); if (info.InterleaveMode == JpegLSInterleaveMode.None && info.ComponentCount == 3) { expected = TripletToPlanar(expected, info.Width, info.Height); } Assert.AreEqual(expected, uncompressed); }
public void Compress() { var info = new JpegLSMetadataInfo(256, 256, 8, 3); var uncompressedOriginal = ReadAllBytes("TEST8.PPM", 15); uncompressedOriginal = TripletToPlanar(uncompressedOriginal, info.Width, info.Height); var compressedSegment = JpegLSCodec.Compress(info, uncompressedOriginal); var compressed = new byte[compressedSegment.Count]; Array.Copy(compressedSegment.Array, compressed, compressed.Length); var compressedInfo = JpegLSCodec.GetMetadataInfo(compressed); Assert.AreEqual(info, compressedInfo); var uncompressed = JpegLSCodec.Decompress(compressed); Assert.AreEqual(info.UncompressedSize, uncompressed.Length); Assert.AreEqual(uncompressedOriginal, uncompressed); }