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



The RasterCommand class implements IRasterCommand and is the base class for all LEADTOOLS image processing commands. Supported in Silverlight, Windows Phone 7

Object Model

RasterCommand Class

Syntax

Visual Basic (Declaration) 
Public MustInherit Class RasterCommand 
   Implements IRasterCommand 
Visual Basic (Usage)Copy Code
Dim instance As RasterCommand
C# 
public abstract class RasterCommand : IRasterCommand  
C++/CLI 
public ref class RasterCommand abstract : public IRasterCommand  

Example

This example runs two image processing commands on an image showing the progress percentage.

Visual BasicCopy Code
Public Sub RasterCommandExample()
      Dim codecs As RasterCodecs = New RasterCodecs()

      Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")
      Dim rotatedFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_rotated.bmp")
      Dim flippedFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_flipped.bmp")

      ' Load the source image from disk
      Dim image As RasterImage = codecs.Load(srcFileName)

      ' flip the image
      Dim flip As FlipCommand = New FlipCommand(False)
      RunCommand(image, flip)

      ' save the image
      codecs.Save(image, flippedFileName, RasterImageFormat.Bmp, 24)

      ' rotate the image by 45 degrees
      Dim rotate As RotateCommand = New RotateCommand()
      rotate.Angle = 45 * 100
      rotate.FillColor = RasterColor.FromKnownColor(RasterKnownColor.White)
      rotate.Flags = RotateCommandFlags.Resize
      RunCommand(image, rotate)

      ' save the image
      codecs.Save(image, rotatedFileName, RasterImageFormat.Bmp, 24)

      ' clean up
      image.Dispose()
   End Sub

   Private cancelAt50 As Boolean

   Private Sub RunCommand(ByVal image As RasterImage, ByVal command As IRasterCommand)
      ' subscribe to the progress event of the command
      AddHandler command.Progress, AddressOf command_Progress

      ' if this is a flip command, we want to stop at 50 percent
      cancelAt50 = TypeOf command Is FlipCommand

      ' run the command
      command.Run(image)

      RemoveHandler command.Progress, AddressOf command_Progress
   End Sub

   Private Sub command_Progress(ByVal sender As Object, ByVal e As RasterCommandProgressEventArgs)
      ' show the percentage
      Console.WriteLine(e.Percent)

      ' check if we need to cancel the command at 50%
      If e.Percent = 50 AndAlso cancelAt50 Then
         e.Cancel = True
      End If
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
C#Copy Code
public void RasterCommandExample()
   {
      RasterCodecs codecs = new RasterCodecs();

      string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
      string rotatedFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_rotated.bmp");
      string flippedFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1_flipped.bmp");

      // Load the source image from disk
      RasterImage image = codecs.Load(srcFileName);

      // flip the image
      FlipCommand flip = new FlipCommand(false);
      RunCommand(image, flip);

      // save the image
      codecs.Save(image, flippedFileName, RasterImageFormat.Bmp, 24);

      // rotate the image by 45 degrees
      RotateCommand rotate = new RotateCommand();
      rotate.Angle = 45 * 100;
      rotate.FillColor = RasterColor.FromKnownColor(RasterKnownColor.White);
      rotate.Flags = RotateCommandFlags.Resize;
      RunCommand(image, rotate);

      // save the image
      codecs.Save(image, rotatedFileName, RasterImageFormat.Bmp, 24);

      // clean up
      image.Dispose();
   }

   bool cancelAt50;

   void RunCommand(RasterImage image, IRasterCommand command)
   {
      // subscribe to the progress event of the command
      command.Progress += new EventHandler<RasterCommandProgressEventArgs>(command_Progress);

      // if this is a flip command, we want to stop at 50 percent
      cancelAt50 = command is FlipCommand;

      // run the command
      command.Run(image);

      command.Progress -= new EventHandler<RasterCommandProgressEventArgs>(command_Progress);
   }

   void command_Progress(object sender, RasterCommandProgressEventArgs e)
   {
      // show the percentage
      Console.WriteLine(e.Percent);

      // check if we need to cancel the command at 50%
      if(e.Percent == 50 && cancelAt50)
         e.Cancel = true;
   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
SilverlightCSharpCopy Code
public void RasterCommandExample(RasterImage image, Stream flippedStream, Stream rotatedStream)
{
   RasterCodecs codecs = new RasterCodecs();
   // flip the image
   FlipCommand flip = new FlipCommand(false);
   RunCommand(image, flip);

   // save the image
   codecs.Save(image, flippedStream, RasterImageFormat.Png, 24);

   // rotate the image by 45 degrees
   RotateCommand rotate = new RotateCommand();
   rotate.Angle = 45 * 100;
   rotate.FillColor = RasterColorConverter.FromColor(Colors.White);
   rotate.Flags = RotateCommandFlags.Resize;
   RunCommand(image, rotate);

   // save the image
   codecs.Save(image, rotatedStream, RasterImageFormat.Png, 24);

   // clean up
   image.Dispose();
}

bool cancelAt50;

void RunCommand(RasterImage image, IRasterCommand command)
{
   // subscribe to the progress event of the command
   command.Progress += new EventHandler<RasterCommandProgressEventArgs>(command_Progress);

   // if this is a flip command, we want to stop at 50 percent
   cancelAt50 = command is FlipCommand;

   // run the command
   command.Run(image);

   command.Progress -= new EventHandler<RasterCommandProgressEventArgs>(command_Progress);
}

void command_Progress(object sender, RasterCommandProgressEventArgs e)
{
   // show the percentage
   Debug.WriteLine(e.Percent);

   // check if we need to cancel the command at 50%
   if(e.Percent == 50 && cancelAt50)
      e.Cancel = true;
}
SilverlightVBCopy Code
Public Sub RasterCommandExample(ByVal image As RasterImage, ByVal flippedStream As Stream, ByVal rotatedStream As Stream)
   Dim codecs As RasterCodecs = New RasterCodecs()
   ' flip the image
   Dim flip As FlipCommand = New FlipCommand(False)
   RunCommand(image, flip)

   ' save the image
   codecs.Save(image, flippedStream, RasterImageFormat.Png, 24)

   ' rotate the image by 45 degrees
   Dim rotate As RotateCommand = New RotateCommand()
   rotate.Angle = 45 * 100
   rotate.FillColor = RasterColorConverter.FromColor(Colors.White)
   rotate.Flags = RotateCommandFlags.Resize
   RunCommand(image, rotate)

   ' save the image
   codecs.Save(image, rotatedStream, RasterImageFormat.Png, 24)

   ' clean up
   image.Dispose()
End Sub

Private cancelAt50 As Boolean

Private Sub RunCommand(ByVal image As RasterImage, ByVal command As IRasterCommand)
   ' subscribe to the progress event of the command
   AddHandler command.Progress, AddressOf command_Progress

   ' if this is a flip command, we want to stop at 50 percent
   cancelAt50 = TypeOf command Is FlipCommand

   ' run the command
   command.Run(image)

   RemoveHandler command.Progress, AddressOf command_Progress
End Sub

Private Sub command_Progress(ByVal sender As Object, ByVal e As RasterCommandProgressEventArgs)
   ' show the percentage
   Debug.WriteLine(e.Percent)

   ' check if we need to cancel the command at 50%
   If e.Percent = 50 AndAlso cancelAt50 Then
      e.Cancel = True
   End If
End Sub

Remarks

The RasterCommand class is the base class for all LEADTOOLS image processing commands.

This class contains functionality for dealing with running an image processing command, including progress status of the command.

Inheritance Hierarchy

Requirements

Target Platforms: Silverlight, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only), Windows Phone 7

See Also