Provides options to be used by the
ImageOptimizer.OptimizeBuffer(RasterCodecs,IntPtr,Int64,ImageOptimizerOptions,ImageOptimizerProgress) and the
ImageOptimizer.OptimizeDirectory methods,
to optimize the image and save it using the optimal bits per pixel.
Syntax
Visual Basic (Declaration) | |
---|
Public Structure ImageOptimizerOptions
Inherits ValueType |
C# | |
---|
public struct ImageOptimizerOptions : ValueType |
C++/CLI | |
---|
public value class ImageOptimizerOptions : public ValueType |
Example
Visual Basic | Copy Code |
---|
Public Sub TestJpegImageOptimizer()
RasterCodecs.Startup()
Dim codecs As RasterCodecs = New RasterCodecs()
Dim inputFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Slave.jpg"
Dim outputFolder As String = LeadtoolsExamples.Common.ImagesPath.Path + "OptimizedImages"
Dim optimizer As ImageOptimizer = New ImageOptimizer()
Dim options As ImageOptimizerOptions = ImageOptimizerOptions.Default
options.JpegQualityFactor = 255
options.JpegColorSpace = ImageOptimizerJpegColorSpace.JpegColorSpace422
Dim orgBuffer() As Byte = File.ReadAllBytes(inputFileName)
Dim optBuffer() As Byte = optimizer.OptimizeBuffer(codecs, orgBuffer, 0, 0, options, AddressOf OptimizeBufferProgress)
If (Not Directory.Exists(outputFolder)) Then
Directory.CreateDirectory(outputFolder)
End If
Dim outputFileName As String = Path.Combine(outputFolder, Path.GetFileName(inputFileName))
Using fs As FileStream = File.Create(outputFileName)
fs.Write(optBuffer, 0, optBuffer.Length)
End Using
Dim orgSize As Long = New FileInfo(inputFileName).Length
Dim optSize As Long = New FileInfo(outputFileName).Length
Dim percentage As Integer = CType(CType(optSize * 100.0 / orgSize, Double), Integer)
Dim message As String = 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)
RasterCodecs.Shutdown()
End Sub
Public Shared Function OptimizeBufferProgress(ByVal percent As Integer) As Boolean
Console.WriteLine(String.Format("{0}%", percent))
Return True
End Function |
C# | Copy Code |
---|
public void TestJpegImageOptimizer( ) { // Initialize the RasterCodecs class RasterCodecs.Startup(); RasterCodecs codecs = new RasterCodecs(); // The input and output location string inputFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Slave.jpg"; string outputFolder = LeadtoolsExamples.Common.ImagesPath.Path + "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. RasterCodecs.Shutdown(); } static bool OptimizeBufferProgress(int percent) { Console.WriteLine(string.Format("{0}%", percent)); return true; } |
Inheritance Hierarchy
Requirements
Target Platforms: Microsoft .NET Framework 2.0, Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family
See Also