Leadtools.Services.ImageProcessing.ServiceContracts Requires Document/Medical product license | Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
LineRemove Method
See Also  Example
Leadtools.Services.ImageProcessing.ServiceContracts Namespace > IDocumentProcessingService Interface : LineRemove Method



request
A DataContractAttribute containing the data that will be used in this LineRemove operation.
request
A DataContractAttribute containing the data that will be used in this LineRemove operation.
Removes horizontal and vertical lines in a 1-bit black and white image. This operation is available in the Document/Medical Toolkits.

Syntax

Visual Basic (Declaration) 
<FaultContractAttribute(DetailType=Leadtools.Services.Raster.FaultContracts.RasterFault, 
   Action="", 
   Name="", 
   Namespace="", 
   HasProtectionLevel=False)>
<OperationContractAttribute("LineRemove")>
Overridable Function LineRemove( _
   ByVal request As LineRemoveRequest _
) As DocumentResponse
Visual Basic (Usage)Copy Code
Dim instance As IDocumentProcessingService
Dim request As LineRemoveRequest
Dim value As DocumentResponse
 
value = instance.LineRemove(request)
C# 
[FaultContractAttribute(DetailType=Leadtools.Services.Raster.FaultContracts.RasterFault, 
   Action="", 
   Name="", 
   Namespace="", 
   HasProtectionLevel=false)]
[OperationContractAttribute("LineRemove")]
virtual DocumentResponse LineRemove( 
   LineRemoveRequest request
)
C++/CLI 
[FaultContractAttribute(DetailType=Leadtools.Services.Raster.FaultContracts.RasterFault, 
   Action="", 
   Name="", 
   Namespace="", 
   HasProtectionLevel=false)]
[OperationContractAttribute("LineRemove")]
virtual DocumentResponse LineRemove( 
   LineRemoveRequest request
) 

Parameters

request
A DataContractAttribute containing the data that will be used in this LineRemove operation.

Return Value

A DataContractAttribute containing the modified image resulting from the LineRemove operation.

Example

Visual BasicCopy Code
Public Sub LineRemoveExample()
   Dim client As DocumentProcessingServiceClient = New DocumentProcessingServiceClient()
   Dim sourceBinaryData As RawBinaryData = New RawBinaryData()
   sourceBinaryData.Data = File.ReadAllBytes(LeadtoolsExamples.Common.ImagesPath.Path & "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 LineRemoveRequest = New LineRemoveRequest()

   request.ConvertOptions = convertOptions
   request.RegionData = Nothing
   request.Flags = LineRemoveCommandFlags.UseGap Or LineRemoveCommandFlags.GetRegion
   request.MinimumLineLength = 200
   request.MaximumLineWidth = 5
   request.Wall = 7
   request.MaximumWallPercent = 10
   request.GapLength = 2
   request.Variance = 0
   request.Type = LineRemoveCommandType.Horizontal

   Dim response As DocumentResponse = client.LineRemove(request)
   If Not response.Destination Is Nothing Then
      If TypeOf response.Destination Is RawBinaryData Then
         File.WriteAllBytes(LeadtoolsExamples.Common.ImagesPath.Path & "LineRemove.bmp", (TryCast(response.Destination, RawBinaryData)).Data)
      End If
   End If

   If Not response.Region Is Nothing Then
      Dim bitmap As Bitmap = New Bitmap(LeadtoolsExamples.Common.ImagesPath.Path & "LineRemove.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(LeadtoolsExamples.Common.ImagesPath.Path & "LineRemoveRegion.bmp")

      region2.Dispose()
      region1.Dispose()
      bitmap.Dispose()
      graphics.Dispose()
   End If

   client.Close()
End Sub
C#Copy Code
public void LineRemoveExample() 

   DocumentProcessingServiceClient client = new DocumentProcessingServiceClient(); 
   RawBinaryData sourceBinaryData = new RawBinaryData(); 
   sourceBinaryData.Data = File.ReadAllBytes(LeadtoolsExamples.Common.ImagesPath.Path + "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; 
 
   LineRemoveRequest request = new LineRemoveRequest(); 
 
   request.ConvertOptions = convertOptions; 
   request.RegionData = null; 
   request.Flags = LineRemoveCommandFlags.UseGap | LineRemoveCommandFlags.GetRegion; 
   request.MinimumLineLength = 200; 
   request.MaximumLineWidth = 5; 
   request.Wall = 7; 
   request.MaximumWallPercent = 10; 
   request.GapLength = 2; 
   request.Variance = 0; 
   request.Type = LineRemoveCommandType.Horizontal; 
 
   DocumentResponse response = client.LineRemove(request); 
   if (response.Destination != null) 
   { 
      if (response.Destination is RawBinaryData) 
         File.WriteAllBytes(LeadtoolsExamples.Common.ImagesPath.Path + "LineRemove.bmp", (response.Destination as RawBinaryData).Data); 
   } 
 
   if (response.Region != null) 
   { 
      Bitmap bitmap = new Bitmap(LeadtoolsExamples.Common.ImagesPath.Path + "LineRemove.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(LeadtoolsExamples.Common.ImagesPath.Path + "LineRemoveRegion.bmp"); 
 
      region2.Dispose(); 
      region1.Dispose(); 
      bitmap.Dispose(); 
      graphics.Dispose(); 
   } 
 
   client.Close(); 
}

Remarks

  • This operation removes horizontal and vertical lines from scanned text documents. If the lines pass through text, the LineRemoveRequest properties/Constructor parameters can be configured to remove or preserve the text.
  • This operation works only on 1-bit black and white images.
  • If a region is selected, only the selected region will be changed by this operation. If no region is selected, the whole image will be processed.
  • This operation does not support signed data images.
  • This operation does not support 32-bit grayscale images.
For more information, refer to Cleaning Up 1-Bit Images.

Requirements

Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family

See Also

Applications developed with LEADTOOLS WCF components require runtime licenses. Server licensing is required for applications on a server. For more information, refer to: Imaging Pro/Document/Medical Features