Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 19.0.6.4
|
Leadtools.ImageOptimization Namespace > ImageOptimizerOptions Structure : Distance Property |
public int Distance {get; set;}
'Declaration Public Property Distance As Integer
'Usage Dim instance As ImageOptimizerOptions Dim value As Integer instance.Distance = value value = instance.Distance
This example will optimize a Gif image file and then save it to a separate folder
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.ImageOptimization Imports Leadtools.Support.Examples <TestMethod()> _ Public Sub TestGifImageOptimizer() ' Initialize the RasterCodecs class Dim codecs As RasterCodecs = New RasterCodecs() ' The input and output location Dim inputFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "eye.gif") Dim outputFolder As String = Path.Combine(LEAD_VARS.ImagesDir, "Optimized Images") ' Initialize a new Optimizer object Dim optimizer As ImageOptimizer = New ImageOptimizer() ' Optimization Options Dim options As ImageOptimizerOptions = ImageOptimizerOptions.Default ' Set custom optimization options options.Distance = 20 options.Percent = 15 options.PickSamePalette = True ' Load the input file into a byte memory array Dim orgBuffer() As Byte = File.ReadAllBytes(inputFileName) ' Optimize this buffer Dim optBuffer() As Byte = optimizer.OptimizeBuffer(codecs, orgBuffer, 0, orgBuffer.Length, options, Nothing) ' Save this image into the output folder ' Make sure the output folder exists If (Not Directory.Exists(outputFolder)) Then Directory.CreateDirectory(outputFolder) End If ' Get the name of the output file from the input file Dim outputFileName As String = Path.Combine(outputFolder, Path.GetFileName(inputFileName)) ' Save the optimized buffer to the output file Using fs As FileStream = File.Create(outputFileName) fs.Write(optBuffer, 0, optBuffer.Length) End Using ' Compare the original image size with the optimized size 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) 'shutdown the RasterCodecs class. End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
using Leadtools; using Leadtools.Codecs; using Leadtools.ImageOptimization; [TestMethod] public void TestGifImageOptimizer( ) { // Initialize the RasterCodecs class RasterCodecs codecs = new RasterCodecs(); // The input and output location string inputFileName = Path.Combine(LEAD_VARS.ImagesDir, "eye.gif"); 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.Distance = 20; options.Percent = 15; options.PickSamePalette = true; // Load the input file into a byte memory array byte[] orgBuffer = File.ReadAllBytes(inputFileName); // Optimize this buffer byte[] optBuffer = optimizer.OptimizeBuffer(codecs, orgBuffer, 0, orgBuffer.Length, options, null); // 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 class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }