LEADTOOLS OCR(Leadtools.Forms.Ocrアセンブリ)

フレームを表示

CreatePageメソッド








ソースラスター画像。このパラメーターはNullにはできません
imageの所有を決定するオプション。
ラスター画像からIOcrPageを作成します。
構文
'Declaration
 
Function CreatePage( _
   ByVal image As RasterImage, _
   ByVal sharingMode As OcrImageSharingMode _
) As IOcrPage
'Usage
 
Dim instance As IOcrEngine
Dim image As RasterImage
Dim sharingMode As OcrImageSharingMode
Dim value As IOcrPage
 
value = instance.CreatePage(image, sharingMode)
- (nullable LTOcrPage *)createPage:(LTRasterImage *)image sharingMode:(LTOcrImageSharingMode)sharingMode error:(NSError **)error
public OcrPage createPage(RasterImage image, OcrImageSharingMode sharingMode)
function Leadtools.Forms.Ocr.IOcrEngine.CreatePage( 
   image ,
   sharingMode 
)

パラメーター

image
ソースラスター画像。このパラメーターはNullにはできません
sharingMode
imageの所有を決定するオプション。

戻り値

使われる準備ができているIOcrPage
解説

速く直接RasterImageからIOcrPageを作成して、必要なメソッド(IOcrPage.Recognizeなどの)を呼び出して、それから、IOcrPage.GetTextまたはIOcrPage.GetRecognizedCharactersを用いて直接テキストを得るために、CreatePageを使います。

ドキュメントへのIOcrPageが直接PDFまたはMicrosoft Wordなどのファイルする結果を保存するために、ファイルモードでIOcrDocumentオブジェクトを作成しなければならなくて、IOcrDocument.Addを用いてそれにページを追加しなければなりません。

IOcrPageインターフェースは、IDisposableを実装します。このIOcrPageインスタンスを使用した後、破棄します(またはC#ならusing文、Visual BasicならUsing文)を呼び出すことを強くお勧めします。

sharingModeの値は、以下のようにページを作成するのに用いられたあと、何がラスター画像オブジェクトに起こるか決定します:

オプション 説明
OcrImageSharingMode.None

結果IOcrPageは、imageを所有しません。IOcrPageが破棄されるとき、imageは破棄されません。このモードは、アプリケーションの他の部分ですでに使われるimageからOCRページ(そして、認識結果を取得する)を速く作成することに役立ちます。たとえば、imageは画像ビューワで表示されています。imageのコピーを作成する必要がないので、このオプションを使うことはメモリを保存します、そして、ページは認識を実行するとき、同じ画像データを使います。

重要:このモードでは、ページが有効である間じゅう、ラスター画像オブジェクトを有効にしておかなければなりません。IOcrPageオブジェクトが破棄されて、もはや使われなかったあと、ラスター画像を破棄するだけです。

OcrImageSharingMode.AutoDispose

結果IOcrPageは、imageを所有します。IOcrPageが破棄されるとき、imageは同様に破棄されます。imageがアプリケーションの他の部分によりもはや用いられないとき、このモードは役に立ちます。たとえば、imageがスキャニングまたはカメラから得られて、使われるだけであることになっていますOCR処理を行います。このオプションを使用すると、画像オブジェクトの所有がページに移り、ページが破棄されると破棄されます。

サンプル

このサンプルは、ディスクからラスター画像をロードして、結果を得るためにそれのOCR処理を行って、コンソールにそれを印刷します。PDFファイルを作成することは、ドキュメントにページをその後追加します。

Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Forms.Ocr
Imports Leadtools.Forms.DocumentWriters

Private Shared Sub CreatePageExample()
   ' Create an instance of the engine
   Using ocrEngine As IOcrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, False)
      ' Start the engine using default parameters
      ocrEngine.Startup(Nothing, Nothing, Nothing, LEAD_VARS.OcrAdvantageRuntimeDir)
      Dim tifFileNames() As String = _
      { _
         Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif"), _
         Path.Combine(LEAD_VARS.ImagesDir, "Ocr2.tif"), _
         Path.Combine(LEAD_VARS.ImagesDir, "Ocr3.tif"), _
         Path.Combine(LEAD_VARS.ImagesDir, "Ocr4.tif")
      }

      Dim pdfFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.pdf")

      ' Create an OCR document to save the result as PDF
      ' Create the document using file mode since we are not keeping the OCR pages in memory
      Using ocrDocument As IOcrDocument = ocrEngine.DocumentManager.CreateDocument(Nothing, OcrCreateDocumentOptions.None)
         For Each tifFileName As String In tifFileNames
            ' Load the TIFF file as image
            Dim rasterImage As RasterImage = ocrEngine.RasterCodecsInstance.Load(tifFileName, 1)

            ' Create an IOcrPage instance from this image
            Using ocrPage As IOcrPage = ocrEngine.CreatePage(rasterImage, OcrImageSharingMode.AutoDispose)
               ' We told the page to dispose the image when no longer needed, so rasterImage should not be used anymore
               rasterImage = Nothing

               ' Recognize the page
               ocrPage.Recognize(Nothing)

               ' Show the results
               Dim text As String = ocrPage.GetText(-1)
               Console.WriteLine("Recognition text for " + tifFileName)
               Console.WriteLine(text)

               ' Add this recognized page
               ocrDocument.Pages.Add(ocrPage)

               ' The method above took a snapshot of the recognition data of the page and added it to the document
               ' The page is no longer needed
            End Using
         Next

         ' Now we can save the document
         ocrDocument.Save(pdfFileName, DocumentFormat.Pdf, Nothing)
      End Using
   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.DocumentWriters;

private static void CreatePageExample()
{
   // Create an instance of the engine
   using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false))
   {
      // Start the engine using default parameters
      ocrEngine.Startup(null, null, null, LEAD_VARS.OcrAdvantageRuntimeDir);
      string[] tifFileNames =
      {
         Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.tif"),
         Path.Combine(LEAD_VARS.ImagesDir, "Ocr2.tif"),
         Path.Combine(LEAD_VARS.ImagesDir, "Ocr3.tif"),
         Path.Combine(LEAD_VARS.ImagesDir, "Ocr4.tif")
      };

      string pdfFileName = Path.Combine(LEAD_VARS.ImagesDir, "Ocr1.pdf");

      // Create an OCR document to save the result as PDF
      // Create the document using file mode since we are not keeping the OCR pages in memory
      using (IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument(null, OcrCreateDocumentOptions.None))
      {
         foreach (string tifFileName in tifFileNames)
         {
            // Load the TIFF file as image
            RasterImage rasterImage = ocrEngine.RasterCodecsInstance.Load(tifFileName, 1);

            // Create an IOcrPage instance from this image
            using (IOcrPage ocrPage = ocrEngine.CreatePage(rasterImage, OcrImageSharingMode.AutoDispose))
            {
               // We told the page to dispose the image when no longer needed, so rasterImage should not be used anymore
               rasterImage = null;

               // Recognize the page
               ocrPage.Recognize(null);

               // Show the results
               string text = ocrPage.GetText(-1);
               Console.WriteLine("Recognition text for " + tifFileName);
               Console.WriteLine(text);

               // Add this recognized page
               ocrDocument.Pages.Add(ocrPage);

               // The method above took a snapshot of the recognition data of the page and added it to the document
               // The page is no longer needed
            }
         }

         // Now we can save the document
         ocrDocument.Save(pdfFileName, DocumentFormat.Pdf, null);
      }
   }
}

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

ターゲットプラットホーム

参照

参照

IOcrEngineインターフェース
IOcrEngineメンバ
IOcrPageインターフェース
IOcrPage.AutoZone
IOcrPage.Recognize
IOcrDocumentManager
IOcrDocumentManager.CreateDocument
OcrEngineManagerクラス
OcrEngineType列挙体
LEADTOOLS .NET OCRによるプログラミング

Leadtools.Forms.Ocrは、認識またはDocument Imaging Suiteのライセンスと、解除キーが必要です。詳細は、以下を参照してください。LEADTOOLSツールキット機能