DotRemove Method
Summary
Finds and removes dots and specks of various sizes. This method is available in the Document/Medical Toolkits.
Example
using Leadtools.Services;
public void DotRemoveExample()
{
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;
DotRemoveRequest request = new DotRemoveRequest();
request.ConvertOptions = convertOptions;
request.RegionData = null;
request.Flags = DotRemoveCommandFlags.GetRegion | DotRemoveCommandFlags.UseSize;
request.MinimumDotWidth = 1;
request.MinimumDotHeight = 1;
request.MaximumDotWidth = 10;
request.MaximumDotHeight = 10;
DocumentResponse response = client.DotRemove(request);
if (response.Destination != null)
{
if (response.Destination is RawBinaryData)
File.WriteAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "DotRemove.bmp"), (response.Destination as RawBinaryData).Data);
}
if (response.Region != null)
{
Bitmap bitmap = new Bitmap(Path.Combine(LEAD_VARS.ImagesDir, "DotRemove.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, "DotRemoveRegion.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";
}
Imports Leadtools.Services
Public Sub DotRemoveExample()
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 DotRemoveRequest = New DotRemoveRequest()
request.ConvertOptions = convertOptions
request.RegionData = Nothing
request.Flags = DotRemoveCommandFlags.GetRegion Or DotRemoveCommandFlags.UseSize
request.MinimumDotWidth = 1
request.MinimumDotHeight = 1
request.MaximumDotWidth = 10
request.MaximumDotHeight = 10
Dim response As DocumentResponse = client.DotRemove(request)
If Not response.Destination Is Nothing Then
If TypeOf response.Destination Is RawBinaryData Then
File.WriteAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "DotRemove.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, "DotRemove.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, "DotRemoveRegion.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