VintaSoft Imaging .NET SDK 12.4: Documentation for .NET developer
Vintasoft.Imaging.ImageProcessing.Transforms Namespace / QuadrilateralWarpCommand Class
Members Object Syntax Remarks Example Hierarchy Requirements SeeAlso
In This Topic
    QuadrilateralWarpCommand Class
    In This Topic
    Transforms an image using quadrilateral warp or unwarp (IsInverseTransform).
    Object Model
    ColorBase RegionOfInterest ProcessingCommandResults QuadrilateralWarpCommand
    Syntax
    'Declaration
    
    Public Class QuadrilateralWarpCommand
       Inherits ImageTransformationBasedCommand
    
    
    public class QuadrilateralWarpCommand : ImageTransformationBasedCommand
    
    
    public __gc class QuadrilateralWarpCommand : public ImageTransformationBasedCommand*
    
    
    public ref class QuadrilateralWarpCommand : public ImageTransformationBasedCommand^
    
    
    Remarks

    Inverse transform can be used to perspective correction.

    Example

    This C#/VB.NET code shows how to load an image from disk, skew the image horizontally and save the result to a new image file.

    
    Public Sub ProcessImage()
        ' [ do not forget to set your image file path here! ]
        ' create an image collection
        Using images As New Vintasoft.Imaging.ImageCollection()
            ' add image to the image collection
            images.Add("Flower.jpg")
            Try
                ' create the image processing command
                Dim command As New Vintasoft.Imaging.ImageProcessing.Transforms.QuadrilateralWarpCommand(New System.Drawing.PointF() {New System.Drawing.PointF(50, 50), New System.Drawing.PointF(175, 75), New System.Drawing.PointF(75, 175), New System.Drawing.PointF(250, 250)})
    
                ' subscribe to progress event of image processing command
                AddHandler command.Progress, New System.EventHandler(Of Vintasoft.Imaging.ImageProcessing.ImageProcessingProgressEventArgs)(AddressOf command_Progress)
    
                Try
                    ' for each image in image collection
                    For Each image As Vintasoft.Imaging.VintasoftImage In images
                        ' apply the image processing command to the image
                        command.ExecuteInPlace(image)
                    Next
                Catch ex As Vintasoft.Imaging.ImageProcessing.ImageProcessingException
                    ' show error message
                    System.Windows.Forms.MessageBox.Show(ex.Message)
                    Return
                End Try
    
                ' save the processed image collection to a new TIFF file
                images.SaveSync("processed-image.tif")
            Finally
                images.ClearAndDisposeItems()
            End Try
        End Using
    End Sub
    
    Private Sub command_Progress(sender As Object, e As Vintasoft.Imaging.ImageProcessing.ImageProcessingProgressEventArgs)
        ' update progress info using e.Progress property
        ' ...
    
        ' cancel execution of command using e.Cancel property if necessary
        ' ...
    End Sub
    
    
    
    public void ProcessImage()
    {
        // [ do not forget to set your image file path here! ]
        // create an image collection
        using (Vintasoft.Imaging.ImageCollection images = new Vintasoft.Imaging.ImageCollection())
        {
            // add image to the image collection
            images.Add("Flower.jpg");
            try
            {
                // create the image processing command
                Vintasoft.Imaging.ImageProcessing.Transforms.QuadrilateralWarpCommand command =
                    new Vintasoft.Imaging.ImageProcessing.Transforms.QuadrilateralWarpCommand(
                        new System.Drawing.PointF[] {
                        new System.Drawing.PointF(50, 50), new System.Drawing.PointF(175, 75),
                        new System.Drawing.PointF(75, 175), new System.Drawing.PointF(250, 250)
                            });
    
                // subscribe to progress event of image processing command
                command.Progress +=
                    new System.EventHandler<Vintasoft.Imaging.ImageProcessing.ImageProcessingProgressEventArgs>(command_Progress);
    
                try
                {
                    // for each image in image collection
                    foreach (Vintasoft.Imaging.VintasoftImage image in images)
                    {
                        // apply the image processing command to the image
                        command.ExecuteInPlace(image);
                    }
                }
                catch (Vintasoft.Imaging.ImageProcessing.ImageProcessingException ex)
                {
                    // show error message
                    System.Windows.Forms.MessageBox.Show(ex.Message);
                    return;
                }
    
                // save the processed image collection to a new TIFF file
                images.SaveSync("processed-image.tif");
            }
            finally
            {
                images.ClearAndDisposeItems();
            }
        }
    }
    
    void command_Progress(object sender, Vintasoft.Imaging.ImageProcessing.ImageProcessingProgressEventArgs e)
    {
        // update progress info using e.Progress property
        // ...
    
        // cancel execution of command using e.Cancel property if necessary
        // ...
    }
    
    

    Inheritance Hierarchy
    Requirements

    Target Platforms: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

    See Also