public ImageOptimizerJpegColorSpace JpegColorSpace { get; set; }
The default value is ImageOptimizerJpegColorSpace.JpegColorSpace411.
The JpegColorSpace is used if and only if the original image format was one of the following Jpeg formats:
For more information refer to ImageOptimizerJpegColorSpace.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageOptimization;
public void TestJpegImageOptimizer()
{
// Initialize the RasterCodecs class
RasterCodecs codecs = new RasterCodecs();
// The input and output location
string inputFileName = Path.Combine(LEAD_VARS.ImagesDir, "Cannon.jpg");
string outputFolder = Path.Combine(LEAD_VARS.ImagesDir, "OptimizedImages");
// Initialize a new Optimizer object
ImageOptimizer optimizer = new ImageOptimizer();
// Optimization Options
ImageOptimizerOptions options = ImageOptimizerOptions.Default;
// Set custom optimization options
options.JpegQualityFactor = 255;
options.JpegColorSpace = ImageOptimizerJpegColorSpace.JpegColorSpace422;
// Load the input file into a memory byte array
byte[] orgBuffer = File.ReadAllBytes(inputFileName);
// Optimize this buffer
byte[] optBuffer = optimizer.OptimizeBuffer(codecs, orgBuffer, 0, orgBuffer.Length, options, OptimizeBufferProgress);
// Save this image into the output folder
// Make sure the output folder exists
if (!Directory.Exists(outputFolder))
Directory.CreateDirectory(outputFolder);
// Get the name of the output file from the input file
string outputFileName = Path.Combine(outputFolder, Path.GetFileName(inputFileName));
// Save the optimized buffer to the output file
using (FileStream fs = File.Create(outputFileName))
fs.Write(optBuffer, 0, optBuffer.Length);
// Compare the original image size with the optimized size
long 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";
}