LEADTOOLS Image Processing (Leadtools.ImageOptimization assembly)

PickSamePalette Property

Show in webframe
Example 





Gets or sets a value that indicates whether to generate a unique global palette for all GIF frames or generate a separate palette for each frame.
Syntax
public bool PickSamePalette {get; set;}
'Declaration
 
Public Property PickSamePalette As Boolean
'Usage
 
Dim instance As ImageOptimizerOptions
Dim value As Boolean
 
instance.PickSamePalette = value
 
value = instance.PickSamePalette

            

            
public:
property bool PickSamePalette {
   bool get();
   void set (    bool value);
}

Property Value

Value that indicates whether to generate a unique global palette for all GIF frames or generate a separate palette for each frame. Possible values are:
Value Description
true Generate a unique global palette for all GIF Frames.
false Generate an individual palette for each GIF Frame.
Example
Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageOptimization
Imports Leadtools.Support.Examples

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;

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";
}
Requirements

Target Platforms

See Also

Reference

ImageOptimizerOptions Structure
ImageOptimizerOptions Members