public delegate bool ImageOptimizerProgress(int percent)
percent
A value from 0 to 100 that indicates the percent completion of the optimization operation.
A System.Boolean value that indicates whether to cancel the optimization operation. Possible values are:
| Value | Description |
|---|---|
| false | Cancel the buffer optimization operation. |
| true | Continue normally. |
The callback method will be called for every 1 of the optimization that has been completed.
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";}