
'Declaration Public Class HolePunchFillingCommand Inherits Vintasoft.Imaging.ImageProcessing.ProcessingCommandWithRegion
public class HolePunchFillingCommand : Vintasoft.Imaging.ImageProcessing.ProcessingCommandWithRegion
public __gc class HolePunchFillingCommand : public Vintasoft.Imaging.ImageProcessing.ProcessingCommandWithRegion
public ref class HolePunchFillingCommand : public Vintasoft.Imaging.ImageProcessing.ProcessingCommandWithRegion
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 // ... } }
System.Object
Vintasoft.Imaging.ImageProcessing.ProcessingCommandBase
Vintasoft.Imaging.ImageProcessing.ProcessingCommandWithRegion
Vintasoft.Imaging.ImageProcessing.Document.HolePunchFillingCommand
Target Platforms: .NET 6; .NET 5; .NET Core 3.1; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5