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(); }
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(); }
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); } }