예제 #1
0
 public void TestEmptyTargetImage_Decompress()
 {
     Assert.Throws <DirectoryNotFoundException>(() =>
     {
         m_testerDecompress.Run(new string[] { }, Tester.MapOpenPath("3D.JPG"), Tester.Testcase);
     });
 }
예제 #2
0
        public void TestMarkerList()
        {
            jpeg_decompress_struct cinfo = new jpeg_decompress_struct();

            using (FileStream input = new FileStream(Tester.MapOpenPath("PARROTS.JPG"), FileMode.Open))
            {
                /* Specify data source for decompression */
                cinfo.jpeg_stdio_src(input);

                const int markerDataLengthLimit = 1000;
                cinfo.jpeg_save_markers((int)JPEG_MARKER.COM, markerDataLengthLimit);
                cinfo.jpeg_save_markers((int)JPEG_MARKER.APP0, markerDataLengthLimit);

                /* Read file header, set default decompression parameters */
                cinfo.jpeg_read_header(true);

                Assert.AreEqual(cinfo.Marker_list.Count, 3);

                int[] expectedMarkerType           = { (int)JPEG_MARKER.APP0, (int)JPEG_MARKER.APP0, (int)JPEG_MARKER.COM };
                int[] expectedMarkerOriginalLength = { 14, 3072, 10 };
                for (int i = 0; i < cinfo.Marker_list.Count; ++i)
                {
                    jpeg_marker_struct marker = cinfo.Marker_list[i];
                    Assert.IsNotNull(marker);
                    Assert.AreEqual(marker.Marker, expectedMarkerType[i]);
                    Assert.AreEqual(marker.OriginalLength, expectedMarkerOriginalLength[i]);
                    Assert.LessOrEqual(marker.Data.Length, markerDataLengthLimit);
                }
            }
        }
예제 #3
0
 public void TestGrayscaleJpegToBitmap()
 {
     using (JpegImage jpegImage = new JpegImage(Tester.MapOpenPath("turkey.jpg")))
     {
         testBitmapOutput(jpegImage, "turkey.png");
     }
 }
예제 #4
0
        public void TestJpegImageFromBitmap(string fileName)
        {
            string jpegFileName = fileName.Remove(fileName.Length - 4);

            jpegFileName += ".jpg";

            using (Bitmap bmp = new Bitmap(Tester.MapOpenPath(fileName)))
                testJpegFromBitmap(bmp, jpegFileName);

            testJpegFromFile(Tester.MapOpenPath(fileName), jpegFileName);
        }
예제 #5
0
        public void TestDecompressionFromCMYKJpeg()
        {
            using (JpegImage jpeg = new JpegImage(Tester.MapOpenPath("ammerland.jpg")))
            {
                Assert.AreEqual(jpeg.BitsPerComponent, 8);
                Assert.AreEqual(jpeg.ComponentsPerSample, 4);
                Assert.AreEqual(jpeg.Colorspace, Colorspace.CMYK);
                Assert.AreEqual(jpeg.Width, 315);
                Assert.AreEqual(jpeg.Height, 349);

                testBitmapOutput(jpeg, "ammerland.bmp");
            }
        }
예제 #6
0
        public void TestCompressionResultsSameAsForCJpeg()
        {
            using (JpegImage jpeg = new JpegImage(Tester.MapOpenPath("test24.bmp")))
            {
                testJpegOutput(jpeg, "test24.jpg");

                CompressionParameters parameters = new CompressionParameters();
                parameters.Quality = 25;
                testJpegOutput(jpeg, parameters, "test24_25.jpg");

                parameters = new CompressionParameters();
                parameters.SimpleProgressive = true;
                testJpegOutput(jpeg, parameters, "test24_prog.jpg");
            }
        }
예제 #7
0
        public void TestDecompressionResultsSameAsForDJpeg(string fileName)
        {
            string outputFileName = fileName.Replace(".JPG", ".bmp");

            testBitmapFromFile(Tester.MapOpenPath(fileName), outputFileName);
        }