Exemple #1
0
        private static void DoNativeCompress(FileInfo file, FileInfo output, bool progressive, bool lossless, int quality)
        {
            var nativeJpegOptimizer = new NativeJpegOptimizer();

            nativeJpegOptimizer.CompressFile(file.FullName, output.FullName, progressive, lossless, quality);

            output.Refresh();
        }
Exemple #2
0
        private static void DoNativeCompress(FileInfo file, FileInfo output, bool progressive, bool lossless, int quality)
        {
            int result = NativeJpegOptimizer.CompressFile(file.FullName, output.FullName, progressive, lossless, quality);

            CheckCompressResult(result);

            output.Refresh();
        }
Exemple #3
0
        private static void DoNativeCompress(Stream input, Stream output, bool progressive, bool lossless, int quality)
        {
            using (StreamWrapper readWrapper = StreamWrapper.CreateForReading(input))
            {
                using (StreamWrapper writeWrapper = StreamWrapper.CreateForWriting(output))
                {
                    ReadWriteStreamDelegate reader = new ReadWriteStreamDelegate(readWrapper.Read);
                    ReadWriteStreamDelegate writer = new ReadWriteStreamDelegate(writeWrapper.Write);

                    var nativeJpegOptimizer = new NativeJpegOptimizer();
                    nativeJpegOptimizer.CompressStream(reader, writer, progressive, lossless, quality);
                }
            }
        }
        private static bool DoCompress(FileInfo file, FileInfo output, bool progressive, bool lossless)
        {
            int result = NativeJpegOptimizer.Compress(file.FullName, output.FullName, progressive, lossless);

            if (result == 1)
            {
                throw new MagickCorruptImageErrorException("Unable to decompress the jpeg file.");
            }

            if (result == 2)
            {
                throw new MagickCorruptImageErrorException("Unable to compress the jpeg file.");
            }

            if (result != 0)
            {
                return(false);
            }

            output.Refresh();
            return(true);
        }
        private static void LosslessCompress(FileInfo file, bool progressive)
        {
            FileInfo output = new FileInfo(Path.GetTempFileName());

            try
            {
                int result = NativeJpegOptimizer.Optimize(file.FullName, output.FullName, progressive);

                if (result == 1)
                {
                    throw new MagickCorruptImageErrorException("Unable to decompress the jpeg file.", null);
                }

                if (result == 2)
                {
                    throw new MagickCorruptImageErrorException("Unable to compress the jpeg file.", null);
                }

                if (result != 0)
                {
                    return;
                }

                output.Refresh();
                if (output.Length < file.Length)
                {
                    output.CopyTo(file.FullName, true);
                }

                file.Refresh();
            }
            finally
            {
                FileHelper.Delete(output);
            }
        }