Error processing SSI file
LEADTOOLS OCR (Leadtools.Forms.Ocr assembly)

Show in webframe

SetOverlayImage Method








The overlay image. This value can be null.
Sets the overlay image of this IOcrPage
Syntax
void SetOverlayImage( 
   RasterImage image
)
'Declaration
 
Sub SetOverlayImage( _
   ByVal image As RasterImage _
) 
'Usage
 
Dim instance As IOcrPage
Dim image As RasterImage
 
instance.SetOverlayImage(image)
void SetOverlayImage( 
   RasterImage image
)
- (void)setOverlayImage:(LTRasterImage *)image error:(NSError **)error
public void setOverlayImage(RasterImage value)
function Leadtools.Forms.Ocr.IOcrPage.SetOverlayImage( 
   image 
)
void SetOverlayImage( 
   RasterImage^ image
) 

Parameters

image
The overlay image. This value can be null.
Remarks

The overlay image of an IOcrPage will be used when the image is saved by an IOcrDocument in the following situations:

By the default, the overlay image is the original image used to create the page. It is the same value obtained by calling GetRasterImage with OcrPageType.Original.

In some situation, the user might want use a different image as the overlay. For example, a smaller version is passed to the OCR engine to conserve memory while the original version will only be used on save purposes in a PDF with image/text option. You can call SetOverlayImage before saving the document (memory-based) or adding the page to the document (file-based) and the engine will use this new image as the overlay value. If auto-preprocessing was performed on the page through AutoPreprocess, then the same values might need to be applied to the overlay as well. Use GetPreprocessValues to get the accumulative values of any inversion, rotation or deskewing applied by the pre-processor.

To clear the temporarily overlay image, call SetOverlayImage with a null value.

To get the overlay image at any time, call GetOverlayImage. Note that this property will the same image reference passed to the last SetOverlayImage call. It will not return the original image.

The overlay image is not disposed by this IOcrPage.

Example
Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms.Ocr
Imports Leadtools.Forms
Imports Leadtools.Forms.DocumentWriters
Imports Leadtools.WinForms
Imports Leadtools.Drawing
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color

Public Shared Sub SetOverlayImageExample()
   Dim originalFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif")
   Dim imageFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1_Deskewed.tif")
   Dim outFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "result.pdf")
   Using ocrEngine As IOcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, False)
      ocrEngine.Startup(Nothing, Nothing, Nothing, LEAD_VARS.OcrAdvantageRuntimeDir)

      ' Mimimc having an image that is deskewed
      Using rasterImage As RasterImage = ocrEngine.RasterCodecsInstance.Load(originalFileName, 1)
         ' Rotate the image by 5 degrees to mimic deskew
         Dim rotateCommand As New RotateCommand(5 * 100, RotateCommandFlags.None, RasterColor.FromKnownColor(RasterKnownColor.White))
         rotateCommand.Run(rasterImage)
         ocrEngine.RasterCodecsInstance.Save(rasterImage, imageFileName, RasterImageFormat.CcittGroup4, 1)
      End Using

      ' Now we are ready. We will create a PDF for the result with image over text overlay. And we will intercept creating
      ' the overlay and use the original image instead

      ' Use PDF with image/text option
      Dim pdfOptions As PdfDocumentOptions = DirectCast(ocrEngine.DocumentWriterInstance.GetOptions(DocumentFormat.Pdf), PdfDocumentOptions)
      pdfOptions.ImageOverText = True
      ocrEngine.DocumentWriterInstance.SetOptions(DocumentFormat.Pdf, pdfOptions)

      ' Create an OCR AutoRecognize job
      Dim jobData As New OcrAutoRecognizeJobData
      jobData.ImageFileName = imageFileName
      jobData.FirstPageNumber = 1
      jobData.LastPageNumber = -1
      jobData.DocumentFileName = outFileName
      jobData.Format = DocumentFormat.Pdf

      Dim autoRecognizeManager As IOcrAutoRecognizeManager = ocrEngine.AutoRecognizeManager
      Dim job As IOcrAutoRecognizeJob = autoRecognizeManager.CreateJob(jobData)

      ' Setup pre-processing commands
      autoRecognizeManager.EnableTrace = True
      autoRecognizeManager.PreprocessPageCommands.Clear()
      autoRecognizeManager.PreprocessPageCommands.Add(OcrAutoPreprocessPageCommand.All)
      Dim status As OcrAutoRecognizeManagerJobStatus

      Dim jobOperation As EventHandler(Of OcrAutoRecognizeJobOperationEventArgs) = _
         Sub(sender As Object, e As OcrAutoRecognizeJobOperationEventArgs)
         If e.Operation = OcrAutoRecognizeManagerJobOperation.SavePage Then
            If Not e.PostOperation Then
               ' Get the pre-processing values for the page
               Dim values As OcrPageAutoPreprocessValues = e.Page.GetPreprocessValues()
               ' Show the status of it
               Console.WriteLine("Page:{0} IsInverted:{1} RotationAngle:{2} DeskewAngle{3}", e.ImagePageNumber, values.IsInverted, values.RotationAngle, values.DeskewAngle)

               ' Load the original image from disk
               Dim overlayImage As RasterImage = e.Document.RasterCodecsInstance.Load(e.Job.JobData.ImageFileName, e.ImagePageNumber)

               ' Apply to the image
               If values.RotationAngle <> 0 Then
                  Dim rotateCmd As New RotateCommand(values.RotationAngle, RotateCommandFlags.None, RasterColor.FromKnownColor(RasterKnownColor.White))
                  rotateCmd.Run(overlayImage)
               End If
               If (values.IsInverted) Then
                  Dim invertCmd As New InvertCommand()
                  invertCmd.Run(overlayImage)
               End If

               e.Page.SetOverlayImage(overlayImage)
            End If
         End If
      End Sub

      AddHandler autoRecognizeManager.JobOperation, jobOperation

      Try
         status = autoRecognizeManager.RunJob(job)
      Finally
         RemoveHandler autoRecognizeManager.JobOperation, jobOperation
      End Try

      Console.WriteLine(status)
   End Using
End Sub

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
Public Const OcrAdvantageRuntimeDir As String = "C:\LEADTOOLS 19\Bin\Common\OcrAdvantageRuntime"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Forms.Ocr;
using Leadtools.Forms;
using Leadtools.Forms.DocumentWriters;
using Leadtools.WinForms;
using Leadtools.Drawing;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;

public static void SetOverlayImageExample()
{
   var originalFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif");
   var imageFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1_Deskewed.tif");
   var outFileName = Path.Combine(LEAD_VARS.ImagesDir, "result.pdf");
   using (var ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false))
   {
      ocrEngine.Startup(null, null, null, LEAD_VARS.OcrAdvantageRuntimeDir);

      // Mimimc having an image that is deskewed
      using (var rasterImage = ocrEngine.RasterCodecsInstance.Load(originalFileName, 1))
      {
         // Rotate the image by 5 degrees to mimic deskew
         var rotateCommand = new RotateCommand(5 * 100, RotateCommandFlags.None, RasterColor.FromKnownColor(RasterKnownColor.White));
         rotateCommand.Run(rasterImage);
         ocrEngine.RasterCodecsInstance.Save(rasterImage, imageFileName, RasterImageFormat.CcittGroup4, 1);
      }

      // Now we are ready. We will create a PDF for the result with image over text overlay. And we will intercept creating
      // the overlay and use the original image instead

      // Use PDF with image/text option
      var pdfOptions = ocrEngine.DocumentWriterInstance.GetOptions(DocumentFormat.Pdf) as PdfDocumentOptions;
      pdfOptions.ImageOverText = true;
      ocrEngine.DocumentWriterInstance.SetOptions(DocumentFormat.Pdf, pdfOptions);

      // Create an OCR AutoRecognize job
      var jobData = new OcrAutoRecognizeJobData
      {
         ImageFileName = imageFileName,
         FirstPageNumber = 1,
         LastPageNumber = -1,
         DocumentFileName = outFileName,
         Format = DocumentFormat.Pdf
      };

      var autoRecognizeManager = ocrEngine.AutoRecognizeManager;
      var job = autoRecognizeManager.CreateJob(jobData);

      // Setup pre-processing commands
      autoRecognizeManager.EnableTrace = true;
      autoRecognizeManager.PreprocessPageCommands.Clear();
      autoRecognizeManager.PreprocessPageCommands.Add(OcrAutoPreprocessPageCommand.All);
      OcrAutoRecognizeManagerJobStatus status;

      EventHandler<OcrAutoRecognizeJobOperationEventArgs> jobOperation = (sender, e) =>
      {
         if (e.Operation == OcrAutoRecognizeManagerJobOperation.SavePage)
         {
            if (!e.PostOperation)
            {
               // Get the pre-processing values for the page
               var values = e.Page.GetPreprocessValues();
               // Show the status of it
               Console.WriteLine("Page:{0} IsInverted:{1} RotationAngle:{2} DeskewAngle{3}", e.ImagePageNumber, values.IsInverted, values.RotationAngle, values.DeskewAngle);

               // Load the original image from disk
               var overlayImage = e.Document.RasterCodecsInstance.Load(e.Job.JobData.ImageFileName, e.ImagePageNumber);

               // Apply to the image
               if (values.RotationAngle != 0)
                  new RotateCommand(values.RotationAngle, RotateCommandFlags.None, RasterColor.FromKnownColor(RasterKnownColor.White)).Run(overlayImage);
               if (values.IsInverted)
                  new InvertCommand().Run(overlayImage);

               e.Page.SetOverlayImage(overlayImage);
            }
         }
      };

      autoRecognizeManager.JobOperation += jobOperation;

      try
      {
         status = autoRecognizeManager.RunJob(job);
      }
      finally
      {
         autoRecognizeManager.JobOperation -= jobOperation;
      }

      Console.WriteLine(status);
   }
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
public const string OcrAdvantageRuntimeDir = @"C:\LEADTOOLS 19\Bin\Common\OcrAdvantageRuntime";
}
Requirements

Target Platforms

See Also

Reference

IOcrPage Interface
IOcrPage Members
Leadtools.Forms.DocumentWriters.DocumentFormat
IOcrPage.Recognize
IOcrEngine Interface
OcrEngineManager Class
OcrEngineType Enumeration
Programming with the LEADTOOLS .NET OCR
Files to be Included with Your Application

Error processing SSI file
Leadtools.Forms.Ocr requires a Recognition or Document Imaging Suite license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features