如何读取 System.Drawing 对象
System.Drawing.Bitmap 是 .NET Framework 中的一个类,用于处理位图图像。它提供了创建、操作和显示位图图像的方法和属性。
System.Drawing.Image 是 .NET Framework 中所有 GDI+ 图像对象的基类。它是各种图像类型(包括 System.Drawing.Bitmap.Image)的父类。
IronSoftware.Drawing.AnyBitmap 是 IronSoftware.Drawing.AnyBitmap 中的一个位图类。 IronDrawing是一个开源库,最初由 Iron Software 开发。它可以帮助 C# 软件工程师在 Windows、macOS 和 Linux 平台上的 .NET 项目中取代 System.Drawing.Common
。
如何读取 System.Drawing 对象
- 下载用于读取 System.Drawing 对象的 C# 库
- 获取位图和图像等 System.Drawing 对象
- 使用获取的数据构建 OcrImageInput 类
- 在 Linux 和 macOS 上使用 Iron Software 的 AnyBitmap
- 通过指定裁剪区域来定义阅读区域
开始在您的项目中使用IronPDF,并立即获取免费试用。
查看 IronOCR 上 Nuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变OCR。
Install-Package IronOcr
考虑安装 IronOCR DLL 直接。下载并手动安装到您的项目或GAC表单中: IronOcr.zip
手动安装到你的项目中
下载DLL读取 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 的方法很简单,只需用 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)