The
RasterCommand class implements
IRasterCommand and is the base class for all LEADTOOLS
image processing commands.
Syntax
Visual Basic (Declaration) | |
---|
Public MustInherit Class RasterCommand
Implements 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 Basic | Copy Code |
---|
Public Sub RasterCommandExample()
RasterCodecs.Startup()
Dim codecs As RasterCodecs = New RasterCodecs()
Dim srcFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"
Dim rotatedFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_rotated.bmp"
Dim flippedFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_flipped.bmp"
Dim image As RasterImage = codecs.Load(srcFileName)
Dim flip As FlipCommand = New FlipCommand(False)
RunCommand(image, flip)
codecs.Save(image, flippedFileName, RasterImageFormat.Bmp, 24)
Dim rotate As RotateCommand = New RotateCommand()
rotate.Angle = 45 * 100
rotate.FillColor = RasterColor.FromGdiPlusColor(Color.White)
rotate.Flags = RotateCommandFlags.Resize
RunCommand(image, rotate)
codecs.Save(image, rotatedFileName, RasterImageFormat.Bmp, 24)
image.Dispose()
RasterCodecs.Shutdown()
End Sub
Private cancelAt50 As Boolean
Private Sub RunCommand(ByVal image As RasterImage, ByVal command As IRasterCommand)
AddHandler command.Progress, AddressOf command_Progress
cancelAt50 = TypeOf command Is FlipCommand
command.Run(image)
RemoveHandler command.Progress, AddressOf command_Progress
End Sub
Private Sub command_Progress(ByVal sender As Object, ByVal e As RasterCommandProgressEventArgs)
Console.WriteLine(e.Percent)
If e.Percent = 50 AndAlso cancelAt50 Then
e.Cancel = True
End If
End Sub |
C# | Copy Code |
---|
public void RasterCommandExample() { RasterCodecs.Startup(); RasterCodecs codecs = new RasterCodecs(); string srcFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"; string rotatedFileName = LeadtoolsExamples.Common.ImagesPath.Path + "Image1_rotated.bmp"; string flippedFileName = LeadtoolsExamples.Common.ImagesPath.Path + "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.FromGdiPlusColor(Color.White); rotate.Flags = RotateCommandFlags.Resize; RunCommand(image, rotate); // save the image codecs.Save(image, rotatedFileName, RasterImageFormat.Bmp, 24); // clean up image.Dispose(); RasterCodecs.Shutdown(); } 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; } |
Remarks
Inheritance Hierarchy
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family
See Also