Checks and auto-corrects an inverted image.
Syntax
Example
This example will show how to use the InvertedPage operation to check and auto-correct inverted images.
Visual Basic | Copy Code |
---|
Public Sub InvertedPageExample()
Dim tifFileName As String = LeadtoolsExamples.Common.ImagesPath.Path & "ocr1.tif"
Dim invertedImageFileName As String = LeadtoolsExamples.Common.ImagesPath.Path & "ocr1_Inverted.tif"
Dim nonInvertedImageFileName As String = LeadtoolsExamples.Common.ImagesPath.Path & "ocr1_NonInverted.tif"
Dim documentProcessingClient As DocumentProcessingServiceClient = New DocumentProcessingServiceClient()
Dim sourceBinaryData As RawBinaryData = New RawBinaryData()
sourceBinaryData.Data = File.ReadAllBytes(tifFileName)
Dim convertOptions As RasterConvertOptions = New RasterConvertOptions()
convertOptions.Source = sourceBinaryData
convertOptions.Destination = Nothing
convertOptions.Format = RasterImageFormat.Tif
convertOptions.FirstPage = 1
convertOptions.LastPage = 1
convertOptions.BitsPerPixel = 1
convertOptions.QualityFactor = 2
Dim invertedPageRequest As InvertedPageRequest = New InvertedPageRequest()
invertedPageRequest.Flags = InvertedPageFlags.NoProcess
invertedPageRequest.ConvertOptions = convertOptions
invertedPageRequest.RegionData = Nothing
Dim invertedPageResponse As InvertedPageResponse = documentProcessingClient.InvertedPage(invertedPageRequest)
Console.WriteLine("Original image, inverted = {0}", invertedPageResponse.IsInverted)
Dim invertRequest As InvertRequest = New InvertRequest()
invertRequest.ConvertOptions = convertOptions
Dim colorProcessingClient As ColorProcessingServiceClient = New ColorProcessingServiceClient()
Dim invertResponse As CommandResponse = colorProcessingClient.Invert(invertRequest)
If Not invertResponse.Destination Is Nothing Then
If TypeOf invertResponse.Destination Is RawBinaryData Then
File.WriteAllBytes(invertedImageFileName, (TryCast(invertResponse.Destination, RawBinaryData)).Data)
End If
End If
colorProcessingClient.Close()
convertOptions.Source = invertResponse.Destination
invertedPageRequest.ConvertOptions = convertOptions
invertedPageResponse = documentProcessingClient.InvertedPage(invertedPageRequest)
Console.WriteLine("After running InvertCommand, inverted = {0}", invertedPageResponse.IsInverted)
convertOptions.Source = invertedPageResponse.Destination
invertedPageRequest.Flags = InvertedPageFlags.Process
invertedPageResponse = documentProcessingClient.InvertedPage(invertedPageRequest)
convertOptions.Source = invertedPageResponse.Destination
invertedPageRequest.Flags = InvertedPageFlags.NoProcess
invertedPageResponse = documentProcessingClient.InvertedPage(invertedPageRequest)
Console.WriteLine("After running InvertedPageCommand, inverted = {0}", invertedPageResponse.IsInverted)
If Not invertedPageResponse.Destination Is Nothing Then
If TypeOf invertedPageResponse.Destination Is RawBinaryData Then
File.WriteAllBytes(nonInvertedImageFileName, (TryCast(invertedPageResponse.Destination, RawBinaryData)).Data)
End If
End If
End Sub |
C# | Copy Code |
---|
public void InvertedPageExample() { // Get an image string tifFileName = LeadtoolsExamples.Common.ImagesPath.Path + "ocr1.tif"; string invertedImageFileName = LeadtoolsExamples.Common.ImagesPath.Path + "ocr1_Inverted.tif"; string nonInvertedImageFileName = LeadtoolsExamples.Common.ImagesPath.Path + "ocr1_NonInverted.tif"; DocumentProcessingServiceClient documentProcessingClient = new DocumentProcessingServiceClient(); RawBinaryData sourceBinaryData = new RawBinaryData(); sourceBinaryData.Data = File.ReadAllBytes(tifFileName); RasterConvertOptions convertOptions = new RasterConvertOptions(); convertOptions.Source = sourceBinaryData; convertOptions.Destination = null; convertOptions.Format = RasterImageFormat.Tif; convertOptions.FirstPage = 1; convertOptions.LastPage = 1; convertOptions.BitsPerPixel = 1; convertOptions.QualityFactor = 2; InvertedPageRequest invertedPageRequest = new InvertedPageRequest(); invertedPageRequest.Flags = InvertedPageCommandFlags.NoProcess; invertedPageRequest.ConvertOptions = convertOptions; invertedPageRequest.RegionData = null; InvertedPageResponse invertedPageResponse = documentProcessingClient.InvertedPage(invertedPageRequest); Console.WriteLine("Original image, inverted = {0}", invertedPageResponse.IsInverted); // Invert the image InvertRequest invertRequest = new InvertRequest(); invertRequest.ConvertOptions = convertOptions; ColorProcessingServiceClient colorProcessingClient = new ColorProcessingServiceClient(); CommandResponse invertResponse = colorProcessingClient.Invert(invertRequest); if (invertResponse.Destination != null) { if (invertResponse.Destination is RawBinaryData) File.WriteAllBytes(invertedImageFileName, (invertResponse.Destination as RawBinaryData).Data); } colorProcessingClient.Close(); // Check again convertOptions.Source = invertResponse.Destination; invertedPageRequest.ConvertOptions = convertOptions; invertedPageResponse = documentProcessingClient.InvertedPage(invertedPageRequest); Console.WriteLine("After running InvertCommand, inverted = {0}", invertedPageResponse.IsInverted); // Now run the command to un-invert the image convertOptions.Source = invertedPageResponse.Destination; invertedPageRequest.Flags = InvertedPageCommandFlags.Process; invertedPageResponse = documentProcessingClient.InvertedPage(invertedPageRequest); // Now check the image again convertOptions.Source = invertedPageResponse.Destination; invertedPageRequest.Flags = InvertedPageCommandFlags.NoProcess; invertedPageResponse = documentProcessingClient.InvertedPage(invertedPageRequest); Console.WriteLine("After running InvertedPageCommand, inverted = {0}", invertedPageResponse.IsInverted); if (invertedPageResponse.Destination != null) { if (invertedPageResponse.Destination is RawBinaryData) File.WriteAllBytes(nonInvertedImageFileName, (invertedPageResponse.Destination as RawBinaryData).Data); } } |
Remarks
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family
See Also