Leadtools.Services.ImageProcessing.ServiceContracts Namespace > IDocumentProcessingService Interface : HolePunchRemove Method |
[FaultContractAttribute(DetailType=Leadtools.Services.Raster.FaultContracts.RasterFault, Action="", Name="", Namespace="", ProtectionLevel=ProtectionLevel.None, HasProtectionLevel=false)] [OperationContractAttribute("HolePunchRemove")] DocumentResponse HolePunchRemove( HolePunchRemoveRequest request )
'Declaration <FaultContractAttribute(DetailType=Leadtools.Services.Raster.FaultContracts.RasterFault, Action="", Name="", Namespace="", ProtectionLevel=ProtectionLevel.None, HasProtectionLevel=False)> <OperationContractAttribute("HolePunchRemove")> Function HolePunchRemove( _ ByVal request As HolePunchRemoveRequest _ ) As DocumentResponse
'Usage Dim instance As IDocumentProcessingService Dim request As HolePunchRemoveRequest Dim value As DocumentResponse value = instance.HolePunchRemove(request)
[FaultContractAttribute(DetailType=Leadtools.Services.Raster.FaultContracts.RasterFault, Action="", Name="", Namespace="", ProtectionLevel=ProtectionLevel.None, HasProtectionLevel=false)] [OperationContractAttribute("HolePunchRemove")] DocumentResponse HolePunchRemove( HolePunchRemoveRequest request )
FaultContractAttribute(DetailType=Leadtools.Services.Raster.FaultContracts.RasterFault, Action="", Name="", Namespace="", ProtectionLevel=ProtectionLevel.None, HasProtectionLevel=) OperationContractAttribute("HolePunchRemove") function Leadtools.Services.ImageProcessing.ServiceContracts.IDocumentProcessingService.HolePunchRemove( request )
[FaultContractAttribute(DetailType=Leadtools.Services.Raster.FaultContracts.RasterFault, Action="", Name="", Namespace="", ProtectionLevel=ProtectionLevel.None, HasProtectionLevel=false)] [OperationContractAttribute("HolePunchRemove")] DocumentResponse^ HolePunchRemove( HolePunchRemoveRequest^ request )
For example, the following image must have the vertical line removed:
Once the image has been cleaned, as shown in the following figure, the hole punch can be removed:
For more information, refer to Cleaning Up 1-Bit Images.
Public Sub HolePunchRemoveExample() Dim client As DocumentProcessingServiceClient = New DocumentProcessingServiceClient() Dim sourceBinaryData As RawBinaryData = New RawBinaryData() sourceBinaryData.Data = File.ReadAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "clean.tif")) Dim convertOptions As RasterConvertOptions = New RasterConvertOptions() convertOptions.Source = sourceBinaryData convertOptions.Destination = Nothing convertOptions.Format = RasterImageFormat.Bmp convertOptions.FirstPage = 1 convertOptions.LastPage = 1 convertOptions.BitsPerPixel = 24 convertOptions.QualityFactor = 2 Dim request As HolePunchRemoveRequest = New HolePunchRemoveRequest() request.ConvertOptions = convertOptions request.RegionData = Nothing request.Flags = HolePunchRemoveCommandFlags.GetRegion Or HolePunchRemoveCommandFlags.UseDpi Or HolePunchRemoveCommandFlags.UseCount Or HolePunchRemoveCommandFlags.UseLocation request.MinimumHoleCount = 2 request.MaximumHoleCount = 4 request.MinimumHoleWidth = 0 request.MinimumHoleHeight = 0 request.MaximumHoleWidth = 0 request.MaximumHoleHeight = 0 request.Location = HolePunchRemoveCommandLocation.Left Dim response As DocumentResponse = client.HolePunchRemove(request) If Not response.Destination Is Nothing Then If TypeOf response.Destination Is RawBinaryData Then File.WriteAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "HolePunchRemove.bmp"), (TryCast(response.Destination, RawBinaryData)).Data) End If End If If Not response.Region Is Nothing Then Dim bitmap As Bitmap = New Bitmap(Path.Combine(LEAD_VARS.ImagesDir, "HolePunchRemove.bmp")) Dim graphics As Graphics = graphics.FromImage(bitmap) Dim region1 As Region = New Region() Dim regionData As RegionData = region1.GetRegionData() regionData.Data = response.Region.Data Dim region2 As Region = New Region(regionData) graphics.FillRegion(Brushes.Red, region2) bitmap.Save(Path.Combine(LEAD_VARS.ImagesDir, "HolePunchRemoveRegion.bmp")) region2.Dispose() region1.Dispose() bitmap.Dispose() graphics.Dispose() End If client.Close() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
public void HolePunchRemoveExample() { DocumentProcessingServiceClient client = new DocumentProcessingServiceClient(); RawBinaryData sourceBinaryData = new RawBinaryData(); sourceBinaryData.Data = File.ReadAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "clean.tif")); RasterConvertOptions convertOptions = new RasterConvertOptions(); convertOptions.Source = sourceBinaryData; convertOptions.Destination = null; convertOptions.Format = RasterImageFormat.Bmp; convertOptions.FirstPage = 1; convertOptions.LastPage = 1; convertOptions.BitsPerPixel = 24; convertOptions.QualityFactor = 2; HolePunchRemoveRequest request = new HolePunchRemoveRequest(); request.ConvertOptions = convertOptions; request.RegionData = null; request.Flags = HolePunchRemoveCommandFlags.GetRegion | HolePunchRemoveCommandFlags.UseDpi | HolePunchRemoveCommandFlags.UseCount | HolePunchRemoveCommandFlags.UseLocation; request.MinimumHoleCount = 2; request.MaximumHoleCount = 4; request.MinimumHoleWidth = 0; request.MinimumHoleHeight = 0; request.MaximumHoleWidth = 0; request.MaximumHoleHeight = 0; request.Location = HolePunchRemoveCommandLocation.Left; DocumentResponse response = client.HolePunchRemove(request); if (response.Destination != null) { if (response.Destination is RawBinaryData) File.WriteAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "HolePunchRemove.bmp"), (response.Destination as RawBinaryData).Data); } if (response.Region != null) { Bitmap bitmap = new Bitmap(Path.Combine(LEAD_VARS.ImagesDir,"HolePunchRemove.bmp")); Graphics graphics = Graphics.FromImage(bitmap); Region region1 = new Region(); RegionData regionData = region1.GetRegionData(); regionData.Data = response.Region.Data; Region region2 = new Region(regionData); graphics.FillRegion(Brushes.Red, region2); bitmap.Save(Path.Combine(LEAD_VARS.ImagesDir,"HolePunchRemoveRegion.bmp")); region2.Dispose(); region1.Dispose(); bitmap.Dispose(); graphics.Dispose(); } client.Close(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2