如何读取数据流
流数据是指可读取或写入的二进制信息的连续流。在编程和数据处理中,数据流被用来有效地处理因数据量过大而无法完全存入内存的数据。数据流允许以较小的、可管理的块来读取或写入数据。
IronOcr 的导入方法也接受要导入和读取的图像数据流。只需将数据流数据传入其中一个导入方法即可。该方法将处理导入图像的所有必要步骤。
如何读取数据流
- 下载用于从流中读取数据的 C# 库
- 获取并准备图像流数据
- 将图像流传递给 OcrImageInput 构造函数来导入图像
- 使用
读取
方法来执行 OCR - 通过指定裁剪区域来定义阅读区域
开始在您的项目中使用IronPDF,并立即获取免费试用。
查看 IronOCR 上 Nuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变OCR。
Install-Package IronOcr
考虑安装 IronOCR DLL 直接。下载并手动安装到您的项目或GAC表单中: IronOcr.zip
手动安装到你的项目中
下载DLL读取流示例
首先,实例化IronTesseract类以执行 OCR。使用 AnyBitmap 的 FromFile
方法导入图像文件。这个 AnyBitmap 对象将能把图像数据转换成流。接下来,使用 "using "语句通过 AnyBitmap 对象的 "GetStream "方法传递图像流来创建 OcrImageInput 对象。最后,使用 Read
方法执行 OCR。
:path=/static-assets/ocr/content-code-examples/how-to/input-streams-read-streams.cs
using IronOcr;
using IronSoftware.Drawing;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Read image file to AnyBitmap
AnyBitmap anyBitmap = AnyBitmap.FromFile("Potter.tiff");
// Import image stream
using var imageInput = new OcrImageInput(anyBitmap.GetStream());
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports IronSoftware.Drawing
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Read image file to AnyBitmap
Private anyBitmap As AnyBitmap = AnyBitmap.FromFile("Potter.tiff")
' Import image stream
Private imageInput = New OcrImageInput(anyBitmap.GetStream())
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
指定扫描区域
要提高大型图像的性能并从特定区域获取特定读数,可以使用 CropRectangle 类。OcrImageInput 构造函数接受一个 CropRectangle 对象作为第二个参数。这样,您就可以指定应读取图像文件的哪个区域。在下面的代码示例中,我指定只读取章节编号和标题区域。
:path=/static-assets/ocr/content-code-examples/how-to/input-streams-read-specific-region.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Read image file to AnyBitmap
AnyBitmap anyBitmap = AnyBitmap.FromFile("Potter.tiff");
// Specify crop region
Rectangle scanRegion = new Rectangle(800, 200, 900, 400);
// Add image
using var imageInput = new OcrImageInput(anyBitmap.GetStream(), 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()
' Read image file to AnyBitmap
Private anyBitmap As AnyBitmap = AnyBitmap.FromFile("Potter.tiff")
' Specify crop region
Private scanRegion As New Rectangle(800, 200, 900, 400)
' Add image
Private imageInput = New OcrImageInput(anyBitmap.GetStream(), ContentArea:= scanRegion)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
' Output the result to console
Console.WriteLine(ocrResult.Text)