←Select platform

RasterCommandProcessor Class

Summary

Batch processes a collection of RasterCommand object on a collection of RasterImage objects.

Syntax
C#
VB
C++
public class RasterCommandProcessor 
Public Class RasterCommandProcessor  
public ref class RasterCommandProcessor  

Remarks

Use the RasterCommandProcessor class to perform "batch" image processing, where one or more commands are executed on one or more images.

Example

This example will load multiple images from disk and executes multiple image processing commands on them before saving the result into a single multi-page tif file.

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using LeadtoolsExamples.Common; 
 
public void RasterCommandProcessorExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   string destFileName = Path.Combine(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(ImagesPath.Path, string.Format("Image{0}.cmp", (i + 1) % 2 + 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(); 
} 
 
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); 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
 
Public Sub RasterCommandProcessorExample() 
   Dim codecs As RasterCodecs = New RasterCodecs() 
 
   Dim destFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "RasterCommandProcessor.tif") 
 
   ' create a raster command processor 
   Dim processor As RasterCommandProcessor = 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, Nothing)) 
   processor.Commands.Add(New FlipCommand(False)) 
 
   ' load the images 
   Const imageCount As Integer = 2 
   For i As Integer = 0 To imageCount - 1 
      Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, String.Format("Image{0}.cmp", i + 1)) 
      processor.Images.Add(codecs.Load(srcFileName)) 
   Next i 
 
   ' run the commands 
   AddHandler processor.Progress, AddressOf processor_Progress 
   processor.Run() 
   RemoveHandler processor.Progress, AddressOf processor_Progress 
 
   ' save the result image as multi-page tif file 
   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 
 
   ' clean up 
   For i As Integer = 0 To imageCount - 1 
      processor.Images(i).Dispose() 
   Next i 
 
End Sub 
 
Private Sub processor_Progress(ByVal sender As Object, ByVal e As RasterCommandProcessorProgressEventArgs) 
   ' 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) 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 
c#[Silverlight C# Example] 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Examples; 
using Leadtools.ImageProcessing; 
using Leadtools.Windows.Media; 
 
public void RasterCommandProcessorExample(RasterImage image1, RasterImage image2, RasterImage image3, Stream destStream) 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   // 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)); 
 
   // add the images 
   processor.Images.Add(image1); 
   processor.Images.Add(image2); 
   processor.Images.Add(image3); 
 
   // 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 
   for (int i = 0; i < 3; i++) 
      codecs.Save( 
         processor.Images[i], 
         destStream, 
         RasterImageFormat.Tif, 
         8, 
         1, 
         1, 
         -1, 
         CodecsSavePageMode.Append); 
 
   // clean up 
   for (int i = 0; i < 3; i++) 
      processor.Images[i].Dispose(); 
} 
 
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); 
   Debug.WriteLine("{0}% done", e.Percent); 
} 
vb[Silverlight VB Example] 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.Windows.Media 
 
Public Sub RasterCommandProcessorExample(ByVal image1 As RasterImage, ByVal image2 As RasterImage, ByVal image3 As RasterImage, ByVal destStream As Stream) 
   Dim codecs As RasterCodecs = New RasterCodecs() 
 
   ' create a raster command processor 
   Dim processor As RasterCommandProcessor = 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, Nothing)) 
   processor.Commands.Add(New FlipCommand(False)) 
 
   ' add the images 
   processor.Images.Add(image1) 
   processor.Images.Add(image2) 
   processor.Images.Add(image3) 
 
   ' run the commands 
   AddHandler processor.Progress, AddressOf processor_Progress 
   processor.Run() 
   RemoveHandler processor.Progress, AddressOf processor_Progress 
 
   ' save the result image as multi-page tif file 
   For i As Integer = 0 To 2 
      codecs.Save(processor.Images(i), destStream, RasterImageFormat.Tif, 8, 1, 1, -1, CodecsSavePageMode.Append) 
   Next i 
 
   ' clean up 
   For i As Integer = 0 To 2 
      processor.Images(i).Dispose() 
   Next i 
End Sub 
 
Private Sub processor_Progress(ByVal sender As Object, ByVal e As RasterCommandProcessorProgressEventArgs) 
   ' 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) 
   Debug.WriteLine("{0}% done", e.Percent) 
End Sub 

Requirements

Target Platforms

Help Version 20.0.2019.9.19
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2019 LEAD Technologies, Inc. All Rights Reserved.

Leadtools Assembly