Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 19.0.6.28
|
Leadtools.ImageProcessing Namespace : CombineWarpCommand Class |
public class CombineWarpCommand : RasterCommand, IRasterCommand
'Declaration
Public Class CombineWarpCommand Inherits RasterCommand Implements IRasterCommand
'Usage
Dim instance As CombineWarpCommand
public sealed class CombineWarpCommand : IRasterCommand
@interface LTCombineWarpCommand : LTRasterCommand
function Leadtools.ImageProcessing.CombineWarpCommand()
public ref class CombineWarpCommand : public RasterCommand, IRasterCommand
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 LeadRect(0, 0, RasterImage.Width, RasterImage.Height);
The warp area in the destination image is specified in SetDestinationPoints. The polygon specified in SetDestinationPoints must:
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 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.
This example will warp combines two images.
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.ImageProcessing Public Sub CombineWarpCommandExample() Dim codecs As RasterCodecs = New RasterCodecs() Dim srcFileName1 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp") Dim srcFileName2 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image2.cmp") Dim destFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "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 LeadPoint() = {New LeadPoint(100, 100), New LeadPoint(200, 75), New LeadPoint(200, 250), New LeadPoint(100, 200)} command.DestinationImage = parentImage command.SetDestinationPoints(destPoints) command.SourceRectangle = New LeadRect(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() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing; public void CombineWarpCommandExample() { RasterCodecs codecs = new RasterCodecs(); string srcFileName1 = Path.Combine(ImagesPath.Path, "Image1.cmp"); string srcFileName2 = Path.Combine(ImagesPath.Path, "Image2.cmp"); string destFileName = Path.Combine(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(); LeadPoint[] destPoints = { new LeadPoint(100,100), new LeadPoint(200,75), new LeadPoint(200,250), new LeadPoint(100,200) }; command.DestinationImage = parentImage; command.SetDestinationPoints(destPoints); command.SourceRectangle = new LeadRect(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(); codecs.Dispose(); }
RasterCommandExamples.prototype.CombineWarpCommandExample = function () { Tools.SetLicense(); with (Leadtools) { with (Leadtools.Codecs) { with (Leadtools.ImageProcessing) { var codecs = new RasterCodecs(); var srcFileName1 = "Assets\\sample1.cmp"; var srcFileName2 = "Assets\\sample2.cmp"; var destFileName = "CombineWarpCommand.bmp"; var parentImage; var childImage; // Load the source images from disk return Tools.AppInstallFolder().getFileAsync(srcFileName1).then(function (loadFile) { return codecs.loadAsync(LeadStreamFactory.create(loadFile)) }) .then(function (img1) { parentImage = img1; return Tools.AppInstallFolder().getFileAsync(srcFileName2) }) .then(function (loadFile) { return codecs.loadAsync(LeadStreamFactory.create(loadFile)) }) .then(function (img2) { childImage = img2; // Combine them var command = new CombineWarpCommand(); var destPoints = [ LeadPointHelper.create(100, 100), LeadPointHelper.create(200, 75), LeadPointHelper.create(200, 250), LeadPointHelper.create(100, 200) ]; command.destinationImage = parentImage; command.setDestinationPoints(destPoints); command.sourceRectangle = LeadRectHelper.create(0, 0, childImage.width, childImage.height); command.flags = CombineWarpCommandFlags.bilinear; command.run(childImage); // Save it to disk return Tools.AppLocalFolder().createFileAsync(destFileName) }) .then(function (saveFile) { return codecs.saveAsync(parentImage, LeadStreamFactory.create(saveFile), RasterImageFormat.bmp, 24) }) .then(function () { // Clean Up parentImage.close(); childImage.close(); codecs.close() }); } } } }
using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing; public async Task CombineWarpCommandExample() { RasterCodecs codecs = new RasterCodecs(); string srcFileName1 = @"Assets\sample1.cmp"; string srcFileName2 = @"Assets\sample2.cmp"; string destFileName = @"CombineWarpCommand.bmp"; // Load the source images from disk StorageFile loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName1); RasterImage parentImage = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile)); loadFile = await Tools.AppInstallFolder.GetFileAsync(srcFileName2); RasterImage childImage = await codecs.LoadAsync(LeadStreamFactory.Create(loadFile)); // Combine them CombineWarpCommand command = new CombineWarpCommand(); LeadPoint[] destPoints = { LeadPointHelper.Create(100,100), LeadPointHelper.Create(200,75), LeadPointHelper.Create(200,250), LeadPointHelper.Create(100,200) }; command.DestinationImage = parentImage; command.SetDestinationPoints(destPoints); command.SourceRectangle = LeadRectHelper.Create(0, 0, childImage.Width, childImage.Height); command.Flags = CombineWarpCommandFlags.Bilinear; command.Run(childImage); // Save it to disk StorageFile saveFile = await Tools.AppLocalFolder.CreateFileAsync(destFileName); await codecs.SaveAsync(parentImage, LeadStreamFactory.Create(saveFile), RasterImageFormat.Bmp, 24); // Clean Up parentImage.Dispose(); childImage.Dispose(); }