Leadtools Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
CombineWarpCommand Class
See Also  Members   Example 
Leadtools.ImageProcessing Namespace : CombineWarpCommand Class



Combines image data from the source image (the slave) and the destination image (the master), using a perspective warp.

Object Model


Syntax

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

Example

This example will warp combines two images.

Visual Basic Copy Code
Public Sub CombineWarpCommandExample()
 RasterCodecs.Startup()
 Dim codecs As RasterCodecs = New RasterCodecs()

 Dim srcFileName1 As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"
 Dim srcFileName2 As String = LeadtoolsExamples.Common.ImagesPath.Path + "Image2.cmp"
 Dim destFileName As String = LeadtoolsExamples.Common.ImagesPath.Path + "CombineWarpCommand.bmp"

 ' Load the source images from disk
 Dim parentImage As RasterImage = codecs.Load(srcFileName1)
 Dim childImage As RasterImage = codecs.Load(srcFileName2)

 ' Combine them
 Dim command As CombineWarpCommand = New CombineWarpCommand()

 Dim destPoints As Point() = {New Point(100, 100), New Point(200, 75), New Point(200, 250), New Point(100, 200)}

 command.DestinationImage = parentImage
 command.SetDestinationPoints(destPoints)
 command.SourceRectangle = New Rectangle(0, 0, childImage.Width, childImage.Height)
 command.Flags = CombineWarpCommandFlags.Bilinear
 command.Run(childImage)

 ' Save it to disk
 codecs.Save(parentImage, destFileName, RasterImageFormat.Bmp, 24)

 ' Clean Up
 parentImage.Dispose()
 childImage.Dispose()
 RasterCodecs.Shutdown()
      End Sub
C# Copy Code
public void CombineWarpCommandExample() 

   RasterCodecs.Startup(); 
   RasterCodecs codecs = new RasterCodecs(); 
 
   string srcFileName1 = LeadtoolsExamples.Common.ImagesPath.Path + "Image1.cmp"; 
   string srcFileName2 = LeadtoolsExamples.Common.ImagesPath.Path + "Image2.cmp"; 
   string destFileName = LeadtoolsExamples.Common.ImagesPath.Path + "CombineWarpCommand.bmp"; 
 
   // Load the source images from disk 
   RasterImage parentImage = codecs.Load(srcFileName1); 
   RasterImage childImage = codecs.Load(srcFileName2); 
 
   // Combine them 
   CombineWarpCommand command = new CombineWarpCommand(); 
 
   Point[] destPoints = 
   { 
      new Point(100,100), 
      new Point(200,75), 
      new Point(200,250), 
      new Point(100,200) 
   }; 
 
   command.DestinationImage = parentImage; 
   command.SetDestinationPoints(destPoints); 
   command.SourceRectangle = new Rectangle(0, 0, childImage.Width, childImage.Height); 
   command.Flags = CombineWarpCommandFlags.Bilinear; 
   command.Run(childImage); 
 
   // Save it to disk 
   codecs.Save(parentImage, destFileName, RasterImageFormat.Bmp, 24); 
 
   // Clean Up 
   parentImage.Dispose(); 
   childImage.Dispose(); 
   RasterCodecs.Shutdown(); 
}

Remarks

You can warp the entire source image, or a portion of the source image. To warp a portion of the source image, set SourceRectangle accordingly. To warp the entire source image, set the following:


CombineWarp.Command.SourceRectangle = new Rectangle(0, 0, RasterImage.Width, RasterImage.Height);

The warp area in the destination image is specified in SetDestinationPoints. The polygon specified in SetDestinationPoints must:

  • Be concave
  • Fit entirely on the destination bitmap

If either of these conditions is false, this class will throw an exception.

The ordering of the points in SetDestinationPoints can affect the resulting warp. For example, if the source image is the following:

then ordering the points in SetDestinationPoints as shown below results in the following warp:

while ordering the points in SetDestinationPoints as shown below, results in the following warp:

The CombineWarpCommand works by combining the image in the DestinationImage property with the image passed to the RasterCommand.Run method. The DestinationImage will then hold the result of the combine operation..

For more information, refer to Introduction to Image Processing With LEADTOOLS.

This command does not support signed data images.

Inheritance Hierarchy

System.Object
   Leadtools.ImageProcessing.RasterCommand
      Leadtools.ImageProcessing.CombineWarpCommand

Requirements

Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family

See Also