VintaSoft Imaging .NET SDK 15.1: Documentation for .NET developer
Vintasoft.Imaging.ImageProcessing.Document Namespace / BorderRemovalCommand Class
Members Object Syntax Remarks Example Hierarchy Requirements SeeAlso
In This Topic
BorderRemovalCommand Class
In This Topic
Detects and removes borders around an image.
Object Model
ProcessingCommandBase ProcessingCommandResults BorderRemovalCommand
Syntax
'Declaration

Public Class BorderRemovalCommand
   Inherits Vintasoft.Imaging.ImageProcessing.ProcessingCommandBase

public class BorderRemovalCommand : Vintasoft.Imaging.ImageProcessing.ProcessingCommandBase

Remarks

Here is a "good" sequence of operations for the document image processing:
1. Invert an inverted image (AutoInvertCommand from Vintasoft.Imaging.DocCleanup.dll)
2. Clear a border of an image (BorderClearCommand from Vintasoft.Imaging.DocCleanup.dll)
3. Remove halftone from an image (HalftoneRemovalCommand from Vintasoft.Imaging.DocCleanup.dll)
4. Deskew an image (DeskewCommand from Vintasoft.Imaging.DocCleanup.dll)
5. Remove hole punches from an image (HolePunchRemovalCommand from Vintasoft.Imaging.DocCleanup.dll)
6. Remove lines from an image (LineRemovalCommand from Vintasoft.Imaging.DocCleanup.dll)
7. Invert inverted text regions on an image (AutoTextInvertCommand from Vintasoft.Imaging.DocCleanup.dll)
8. Despeckle an image (DespeckleCommand from Vintasoft.Imaging.DocCleanup.dll)
9. Remove border of an image (BorderRemovalCommand)

Example

This C#/VB.NET code shows how to load an image of document from disk, prepare the document image for OCR and save the result to a new image file.


Class DocumentCommandsExample
    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
                Try
                    ' for each image in image collection
                    For Each image As Vintasoft.Imaging.VintasoftImage In images
                        ' invert an image if image is inverted
                        ExecuteCommand(New Vintasoft.Imaging.ImageProcessing.Document.AutoInvertCommand(), image)

                        ' clear noise on a border of the image
                        ExecuteCommand(New Vintasoft.Imaging.ImageProcessing.Document.BorderClearCommand(), image)

                        ' remove halftone from the image
                        ExecuteCommand(New Vintasoft.Imaging.ImageProcessing.Document.HalftoneRemovalCommand(), image)

                        ' detect the correct orientation of the image
                        ExecuteCommand(New Vintasoft.Imaging.ImageProcessing.Document.DeskewCommand(), image)

                        ' remove hole punches on image
                        ExecuteCommand(New Vintasoft.Imaging.ImageProcessing.Document.HolePunchRemovalCommand(), image)

                        ' remove tables on image
                        ExecuteCommand(New Vintasoft.Imaging.ImageProcessing.Document.LineRemovalCommand(Vintasoft.Imaging.ImageProcessing.LinesType.Tables), image)

                        ' invert inverted text regions on an image
                        ExecuteCommand(New Vintasoft.Imaging.ImageProcessing.Document.AutoTextInvertCommand(), image)

                        ' remove noise from the image
                        ExecuteCommand(New Vintasoft.Imaging.ImageProcessing.Document.DespeckleCommand(), image)

                        ' remove border around the image
                        ExecuteCommand(New Vintasoft.Imaging.ImageProcessing.Document.BorderRemovalCommand(), 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 ExecuteCommand(command As Vintasoft.Imaging.ImageProcessing.ProcessingCommandBase, image As Vintasoft.Imaging.VintasoftImage)
        ' subscribe to the progress event of command
        AddHandler command.Progress, New System.EventHandler(Of Vintasoft.Imaging.ImageProcessing.ImageProcessingProgressEventArgs)(AddressOf command_Progress)

        ' execute the command
        command.ExecuteInPlace(image)

        ' unsubscribe from the progress event of command
        RemoveHandler command.Progress, New System.EventHandler(Of Vintasoft.Imaging.ImageProcessing.ImageProcessingProgressEventArgs)(AddressOf command_Progress)
    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
End Class


class DocumentCommandsExample
{
    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
            {
                try
                {
                    // for each image in image collection
                    foreach (Vintasoft.Imaging.VintasoftImage image in images)
                    {
                        // invert an image if image is inverted
                        ExecuteCommand(
                            new Vintasoft.Imaging.ImageProcessing.Document.AutoInvertCommand(), image);

                        // clear noise on a border of the image
                        ExecuteCommand(
                            new Vintasoft.Imaging.ImageProcessing.Document.BorderClearCommand(), image);

                        // remove halftone from the image
                        ExecuteCommand(
                            new Vintasoft.Imaging.ImageProcessing.Document.HalftoneRemovalCommand(), image);

                        // detect the correct orientation of the image
                        ExecuteCommand(
                            new Vintasoft.Imaging.ImageProcessing.Document.DeskewCommand(), image);

                        // remove hole punches on image
                        ExecuteCommand(
                            new Vintasoft.Imaging.ImageProcessing.Document.HolePunchRemovalCommand(), image);

                        // remove tables on image
                        ExecuteCommand(
                            new Vintasoft.Imaging.ImageProcessing.Document.LineRemovalCommand(
                                Vintasoft.Imaging.ImageProcessing.LinesType.Tables),
                            image);

                        // invert inverted text regions on an image
                        ExecuteCommand(
                            new Vintasoft.Imaging.ImageProcessing.Document.AutoTextInvertCommand(), image);

                        // remove noise from the image
                        ExecuteCommand(
                            new Vintasoft.Imaging.ImageProcessing.Document.DespeckleCommand(), image);

                        // remove border around the image
                        ExecuteCommand(
                            new Vintasoft.Imaging.ImageProcessing.Document.BorderRemovalCommand(), 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 ExecuteCommand(
        Vintasoft.Imaging.ImageProcessing.ProcessingCommandBase command,
        Vintasoft.Imaging.VintasoftImage image)
    {
        // subscribe to the progress event of command
        command.Progress +=
            new System.EventHandler<Vintasoft.Imaging.ImageProcessing.ImageProcessingProgressEventArgs>(command_Progress);

        // execute the command
        command.ExecuteInPlace(image);

        // unsubscribe from the progress event of command
        command.Progress -=
            new System.EventHandler<Vintasoft.Imaging.ImageProcessing.ImageProcessingProgressEventArgs>(command_Progress);
    }

    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

System.Object
   Vintasoft.Imaging.ImageProcessing.ProcessingCommandBase
      Vintasoft.Imaging.ImageProcessing.Document.BorderRemovalCommand

Requirements

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

See Also