InvertedText Method
Summary
Finds and modifies areas of inverted text in a 1-bit black and white image. This operation is available in the Document/Medical Toolkits.
Example
using Leadtools.Services;
public void InvertedTextExample()
{
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;
InvertedTextRequest request = new InvertedTextRequest();
request.ConvertOptions = convertOptions;
request.RegionData = null;
request.Flags = InvertedTextCommandFlags.UseDpi | InvertedTextCommandFlags.GetRegion;
request.MinimumInvertWidth = 5000;
request.MinimumInvertHeight = 500;
request.MinimumBlackPercent = 70;
request.MaximumBlackPercent = 95;
DocumentResponse response = client.InvertedText(request);
if (response.Destination != null)
{
if (response.Destination is RawBinaryData)
File.WriteAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "InvertedText.bmp"), (response.Destination as RawBinaryData).Data);
}
if (response.Region != null)
{
Bitmap bitmap = new Bitmap(Path.Combine(LEAD_VARS.ImagesDir, "InvertedText.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, "InvertedTextRegion.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 InvertedTextExample()
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 InvertedTextRequest = New InvertedTextRequest()
request.ConvertOptions = convertOptions
request.RegionData = Nothing
request.Flags = InvertedTextCommandFlags.UseDpi Or InvertedTextCommandFlags.GetRegion
request.MinimumInvertWidth = 5000
request.MinimumInvertHeight = 500
request.MinimumBlackPercent = 70
request.MaximumBlackPercent = 95
Dim response As DocumentResponse = client.InvertedText(request)
If Not response.Destination Is Nothing Then
If TypeOf response.Destination Is RawBinaryData Then
File.WriteAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "InvertedText.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, "InvertedText.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, "InvertedTextRegion.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