Beispiel #1
0
        public void DecompressBitStreamWithNoMarkerStart()
        {
            var compressed = new byte[] { 0x33, 0x33 };

            var exception = Assert.Throws <InvalidDataException>(() => JpegLSCodec.Decompress(compressed));

            Assert.AreEqual(JpegLSError.MissingJpegMarkerStart, exception.Data["JpegLSError"]);
        }
Beispiel #2
0
        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"]);
        }
Beispiel #3
0
        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"]);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }