public int JpegQualityFactor { get; set; }
The JpegQualityFactor is a number used to balance between loss and quality during compression. You can set a value from 2 to 255, where 2 represents the highest quality and 255 represents the most compression. The default value is 35.
The JpegQualityFactor is used only if the original image format is one of the following Jpeg formats:
using Leadtools;using Leadtools.Codecs;using Leadtools.ImageOptimization;public void TestJpegImageOptimizer(){// Initialize the RasterCodecs classRasterCodecs codecs = new RasterCodecs();// The input and output locationstring inputFileName = Path.Combine(LEAD_VARS.ImagesDir, "Cannon.jpg");string outputFolder = Path.Combine(LEAD_VARS.ImagesDir, "OptimizedImages");// Initialize a new Optimizer objectImageOptimizer optimizer = new ImageOptimizer();// Optimization OptionsImageOptimizerOptions options = ImageOptimizerOptions.Default;// Set custom optimization optionsoptions.JpegQualityFactor = 255;options.JpegColorSpace = ImageOptimizerJpegColorSpace.JpegColorSpace422;// Load the input file into a memory byte arraybyte[] orgBuffer = File.ReadAllBytes(inputFileName);// Optimize this bufferbyte[] optBuffer = optimizer.OptimizeBuffer(codecs, orgBuffer, 0, orgBuffer.Length, options, OptimizeBufferProgress);// Save this image into the output folder// Make sure the output folder existsif (!Directory.Exists(outputFolder))Directory.CreateDirectory(outputFolder);// Get the name of the output file from the input filestring outputFileName = Path.Combine(outputFolder, Path.GetFileName(inputFileName));// Save the optimized buffer to the output fileusing (FileStream fs = File.Create(outputFileName))fs.Write(optBuffer, 0, optBuffer.Length);// Compare the original image size with the optimized sizelong orgSize = new FileInfo(inputFileName).Length;long optSize = new FileInfo(outputFileName).Length;int percentage = (int)((double)optSize * 100.0 / orgSize);string message = string.Format("Original image size: {0} KB{1}Optimized image size: {2} KB{1}Percentage: {3}%",orgSize / 1024, Environment.NewLine, optSize / 1024,100 - percentage);MessageBox.Show(message);//shutdown the RasterCodecs class.}static bool OptimizeBufferProgress(int percent){Console.WriteLine(string.Format("{0}%", percent));return true;}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";}