Batch processes a collection of
RasterCommand object on a collection of
RasterImage objects.
Object Model
Syntax
Visual Basic (Declaration) |
|
Public Class RasterCommandProcessor |
C# |
|
public class RasterCommandProcessor |
C++/CLI |
|
public ref class RasterCommandProcessor |
Example
This example will load multiple images from disk and executes multiple image proecessing commands on them before saving the result into a single multi-page tif file.
Visual Basic |
Copy Code |
Public Sub RasterCommandProcessorExample() RasterCodecs.Startup() Dim codecs As RasterCodecs = New RasterCodecs()
Dim srcFileDir As String = LeadtoolsExamples.Common.ImagesPath.Path Dim destFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "RasterCommandProcessor.tif"
Dim processor As RasterCommandProcessor = New RasterCommandProcessor()
processor.Commands.Add(New ColorResolutionCommand(ColorResolutionCommandMode.InPlace, 8, RasterByteOrder.Rgb, RasterDitheringMethod.None, ColorResolutionCommandPaletteFlags.Optimized, Nothing)) processor.Commands.Add(New FlipCommand(False))
Const imageCount As Integer = 4 For i As Integer = 0 To imageCount - 1 Dim srcFileName As String = Path.Combine(srcFileDir, String.Format("Image{0}.cmp", i + 1)) processor.Images.Add(codecs.Load(srcFileName)) Next i
AddHandler processor.Progress, AddressOf processor_Progress processor.Run() RemoveHandler processor.Progress, AddressOf processor_Progress
If File.Exists(destFileName) Then File.Delete(destFileName) End If
For i As Integer = 0 To imageCount - 1 codecs.Save(processor.Images(i), destFileName, RasterImageFormat.Tif, 8, 1, 1, -1, CodecsSavePageMode.Append) Next i
For i As Integer = 0 To imageCount - 1 processor.Images(i).Dispose() Next i
RasterCodecs.Shutdown() End Sub
Private Sub processor_Progress(ByVal sender As Object, ByVal e As RasterCommandProcessorProgressEventArgs) Console.Write("Running command {0} ({1}) of {2}, ", e.CommandNumber, e.Command, e.TotalCommands) Console.Write("On image {0} ({1} by {2} pixels) of {3}, ", e.ImageNumber, e.Image.Width, e.Image.Height, e.TotalImages) Console.WriteLine("{0}% done", e.Percent) End Sub |
C# |
Copy Code |
public void RasterCommandProcessorExample() { RasterCodecs.Startup(); RasterCodecs codecs = new RasterCodecs(); string srcFileDir = LeadtoolsExamples.Common.ImagesPath.Path; string destFileName = LeadtoolsExamples.Common.ImagesPath.Path + "RasterCommandProcessor.tif"; // create a raster command processor RasterCommandProcessor processor = new RasterCommandProcessor(); // add the commands (color-res to 8 then flip) processor.Commands.Add(new ColorResolutionCommand( ColorResolutionCommandMode.InPlace, 8, RasterByteOrder.Rgb, RasterDitheringMethod.None, ColorResolutionCommandPaletteFlags.Optimized, null)); processor.Commands.Add(new FlipCommand(false)); // load the images const int imageCount = 4; for(int i = 0; i < imageCount; i++) { string srcFileName = Path.Combine(srcFileDir, string.Format("Image{0}.cmp", i + 1)); processor.Images.Add(codecs.Load(srcFileName)); } // run the commands processor.Progress += new EventHandler<RasterCommandProcessorProgressEventArgs>(processor_Progress); processor.Run(); processor.Progress -= new EventHandler<RasterCommandProcessorProgressEventArgs>(processor_Progress); // save the result image as multi-page tif file if(File.Exists(destFileName)) File.Delete(destFileName); for(int i = 0; i < imageCount; i++) codecs.Save( processor.Images[i], destFileName, RasterImageFormat.Tif, 8, 1, 1, -1, CodecsSavePageMode.Append); // clean up for(int i = 0; i < imageCount; i++) processor.Images[i].Dispose(); RasterCodecs.Shutdown(); } void processor_Progress(object sender, RasterCommandProcessorProgressEventArgs e) { // show information about the command Console.Write("Running command {0} ({1}) of {2}, ", e.CommandNumber, e.Command, e.TotalCommands); Console.Write("On image {0} ({1} by {2} pixels) of {3}, ", e.ImageNumber, e.Image.Width, e.Image.Height, e.TotalImages); Console.WriteLine("{0}% done", e.Percent); } |
Remarks
Inheritance Hierarchy
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family
See Also