ImageOptimizerDirectory Delegate
Summary
Called during the directory optimization operation to give the user information about the image(s) being optimized.
Syntax
Parameters
Return Value
A System.Boolean value that indicates whether to cancel the optimization operation for the current image. Possible values are:
Value |
Description |
false |
Cancel the optimization operation for the current image. |
true |
Continue normally. |
Example
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageOptimization
Imports Leadtools.Support.Examples
Private _imageNo As Integer
<TestMethod()> _
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
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageOptimization;
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";
}