如何读取 System.Drawing 对象
System.Drawing.Bitmap 是 .NET Framework 中用于处理位图图像的一个类。 它提供方法和属性来创建、操作和显示位图图像。
System.Drawing.Image 是 .NET Framework 中所有 GDI+ 图像对象的基类。 它是各种图像类型的父类,包括 System.Drawing.Bitmap。
IronSoftware.Drawing.AnyBitmap 是一个位图类IronDrawing,最初由Iron Software开发的开源库。 它帮助C#软件工程师在Windows、macOS和Linux平台上的.NET项目中替换System.Drawing.Common
。
开始使用IronOCR
立即在您的项目中开始使用IronOCR,并享受免费试用。
如何读取 System.Drawing 对象
- 下载用于读取 System.Drawing 对象的 C# 库
- 获取位图和图像等 System.Drawing 对象
- 使用获取的数据构建 OcrImageInput 类
- 在 Linux 和 macOS 上使用 Iron Software 的 AnyBitmap
- 通过指定裁剪区域来定义阅读区域
阅读 System.Drawing.Bitmap 示例
首先,实例化 IronTesseract 类来执行 OCR。 使用多种方法之一创建 System.Drawing.Bitmap。 在代码示例中,我决定使用文件路径。
接下来,使用 'using' 语句创建 OcrImageInput 对象,并将图像从 System.Drawing.Bitmap 对象传递给它。 最后,使用 Read
方法执行 OCR。
:path=/static-assets/ocr/content-code-examples/how-to/input-system-drawing-read-bitmap.cs
using IronOcr;
using System.Drawing;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Read image file to Bitmap
Bitmap bitmap = new Bitmap("Potter.tiff");
// Import System.Drawing.Bitmap
using var imageInput = new OcrImageInput(bitmap);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports System.Drawing
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Read image file to Bitmap
Private bitmap As New Bitmap("Potter.tiff")
' Import System.Drawing.Bitmap
Private imageInput = New OcrImageInput(bitmap)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
阅读 System.Drawing.Image 示例
从 System.Drawing.Image 读取只需用图像创建 OcrImageInput 对象,然后使用 Read
方法执行标准的 OCR 过程。
:path=/static-assets/ocr/content-code-examples/how-to/input-system-drawing-read-image.cs
using IronOcr;
using Image = System.Drawing.Image;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Open image file as Image
Image image = Image.FromFile("Potter.tiff");
// Import System.Drawing.Image
using var imageInput = new OcrImageInput(image);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports Image = System.Drawing.Image
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Open image file as Image
Private image As Image = Image.FromFile("Potter.tiff")
' Import System.Drawing.Image
Private imageInput = New OcrImageInput(image)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
阅读 IronSoftware.Drawing.AnyBitmap 示例
同样,在创建或获取一个AnyBitmap对象后,您可以构建OcrImageInput类。 构造函数将负责导入数据所需的所有必要步骤。 下面的代码示例演示了这一点。
:path=/static-assets/ocr/content-code-examples/how-to/input-system-drawing-read-anybitmap.cs
using IronOcr;
using IronSoftware.Drawing;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Open image file as AnyBitmap
AnyBitmap anyBitmap = AnyBitmap.FromFile("Potter.tiff");
// Import IronSoftware.Drawing.AnyBitmap
using var imageInput = new OcrImageInput(anyBitmap);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports IronSoftware.Drawing
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Open image file as AnyBitmap
Private anyBitmap As AnyBitmap = AnyBitmap.FromFile("Potter.tiff")
' Import IronSoftware.Drawing.AnyBitmap
Private imageInput = New OcrImageInput(anyBitmap)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
指定扫描区域
在构建OcrImageInput类时,您可以指定要扫描的区域。 这使您可以定义图像文档中用于OCR的特定区域。 根据图像文件,指定扫描区域可以显著提高性能。 在提供的代码示例中,我指定只提取章节号和标题。
:path=/static-assets/ocr/content-code-examples/how-to/input-images-read-specific-region.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Specify crop region
Rectangle scanRegion = new Rectangle(800, 200, 900, 400);
// Add image
using var imageInput = new OcrImageInput("Potter.tiff", ContentArea: scanRegion);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
// Output the result to console
Console.WriteLine(ocrResult.Text);
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Specify crop region
Private scanRegion As New Rectangle(800, 200, 900, 400)
' Add image
Private imageInput = New OcrImageInput("Potter.tiff", ContentArea:= scanRegion)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
' Output the result to console
Console.WriteLine(ocrResult.Text)