LEADTOOLS Image Processing (Leadtools.ImageOptimization assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.29
ImageOptimizerDirectoryData Class
See Also  Members  
Leadtools.ImageOptimization Namespace : ImageOptimizerDirectoryData Class



Provides data for the ImageOptimizerDirectory callback method.

Object Model

ImageOptimizerDirectoryData ClassImageOptimizerOptions Structure

Syntax

Visual Basic (Declaration) 
Public Class ImageOptimizerDirectoryData 
Visual Basic (Usage)Copy Code
Dim instance As ImageOptimizerDirectoryData
C# 
public class ImageOptimizerDirectoryData 
C++/CLI 
public ref class ImageOptimizerDirectoryData 

Example

Visual BasicCopy Code
Private _imageNo As Integer

Public Sub TestDirImageOptimizer()
   _imageNo = 0

   ' Initialize the RasterCodecs class
   Dim codecs As RasterCodecs = New RasterCodecs()

   ' The input and output directories
   Dim inputDirectory As String = LEAD_VARS.ImagesDir
   Dim outputDirectory As String = Path.Combine(LEAD_VARS.ImagesDir, "OptimizedImages")

   ' Initialize a new Optimizer object
   Dim optimizer As ImageOptimizer = New ImageOptimizer()

   ' Optimization Options
   Dim options As ImageOptimizerOptions = ImageOptimizerOptions.Default

   optimizer.OptimizeDirectory(codecs, _
      inputDirectory, _
      outputDirectory, _
      options, _
      "*.jpg", _
      False, _
      AddressOf ImageOptimizerDirectory)

   'shutdown the RasterCodecs class.
End Sub

Public Function ImageOptimizerDirectory(ByVal data As ImageOptimizerDirectoryData) As Boolean
   Console.WriteLine(String.Format("File Percent = {0}%,    Total Percent = {1}%", data.FilePercent, data.TotalPercent))

   If (_imageNo = data.TotalFolderFilesCount) Then

      ' Operation Done.
      Console.WriteLine("Optimization Operation Completed Successfully")
      Return True

   ElseIf (data.Status = ImageOptimizerDirectoryStatus.PreOptimizingImage) Then
      Dim text As String = String.Format("Optimizing Image {0} ?\n", data.InputFileName)
      Dim result As DialogResult = MessageBox.Show(text, "", MessageBoxButtons.YesNoCancel)

      If (result = DialogResult.Yes) Then
         ' Optimize the image using the default options.
         data.Options = ImageOptimizerOptions.Default
         Return True
      ElseIf (result = DialogResult.No) Then
         ' Skip this image.
         _imageNo += 1
         data.SkipImage = True
      Else
         ' Stop the whole operation.
         Return False
      End If
   ElseIf (data.FilePercent = 100) Then
      _imageNo += 1

      ' Displaying information about the optimized image.
      Dim msg As String = String.Format("Optimizing File ( {0} of {1} ) \n" + _
         "--------------------------------\n" + _
         "Source File Name = {2}\n" + _
         "Detination File Name = {3}\n" + _
         "No of Pages = {4}\n", _
         _imageNo, data.TotalFolderFilesCount, data.InputFileName, data.OutputFileName, data.ImageInfo.TotalPages)

      Console.WriteLine(msg)
   End If
   Return True
End Function

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
C#Copy Code
int _imageNo;

   public void TestDirImageOptimizer( )
   {
      _imageNo = 0;

      // Initialize the RasterCodecs class
      RasterCodecs codecs = new RasterCodecs();

      // The input and output directories
      string inputDirectory = LEAD_VARS.ImagesDir;
      string outputDirectory = Path.Combine(LEAD_VARS.ImagesDir, "OptimizedImages");

      // Initialize a new Optimizer object
      ImageOptimizer optimizer = new ImageOptimizer();

      // Optimization Options
      ImageOptimizerOptions options = ImageOptimizerOptions.Default;

      optimizer.OptimizeDirectory(codecs,
         inputDirectory,
         outputDirectory,
         options,
         "*.jpg",
         false,
         ImageOptimizerDirectory);

      //shutdown the RasterCodecs class.
   }

   bool ImageOptimizerDirectory(ImageOptimizerDirectoryData data)
   {
      Console.WriteLine(string.Format("File Percent = {0}%,    Total Percent = {1}%", data.FilePercent, data.TotalPercent));

      if(_imageNo == data.TotalFolderFilesCount)
      {
         // Operation Done.
         Console.WriteLine("Optimization Operation Completed Successfully");
         return true;
      }
      else if(data.Status == ImageOptimizerDirectoryStatus.PreOptimizingImage)
      {
         string text = string.Format("Optimizing Image {0} ?\n", data.InputFileName);
         DialogResult result = MessageBox.Show(text, "", MessageBoxButtons.YesNoCancel);

         if(result == DialogResult.Yes)
         {
            // Optimize the image using the default options.
            data.Options = ImageOptimizerOptions.Default;
            return true;
         }
         else if(result == DialogResult.No)
         {
            // Skip this image.
            _imageNo++;
            data.SkipImage = true;
         }
         else
            // Stop the whole operation.
            return false;
      }
      else if(data.FilePercent == 100)
      {
         _imageNo++;

         // Displaying information about the optimized image.
         string msg = string.Format("Optimizing File ( {0} of {1} ) \n" +
            "--------------------------------\n" +
            "Source File Name = {2}\n" +
            "Detination File Name = {3}\n" +
            "No of Pages = {4}\n",
            _imageNo, data.TotalFolderFilesCount, data.InputFileName, data.OutputFileName, data.ImageInfo.TotalPages);

         Console.WriteLine(msg);
      }
      return true;
   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}

Inheritance Hierarchy

System.Object
   Leadtools.ImageOptimization.ImageOptimizerDirectoryData

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7

See Also