如何读取数据流
流数据指的是可以从中读取或写入的连续二进制信息流。 在编程和数据处理的背景下,流被用来高效处理可能太大而无法完全放入内存的数据。 流允许以较小、易于管理的块读写数据。
IronOcr的导入方法也接受要导入并读取的图像数据流。 这可以通过简单地将流数据传递给其中一个导入方法来完成。 该方法将处理导入图像所需的所有步骤。
开始使用IronOCR
立即在您的项目中开始使用IronOCR,并享受免费试用。
如何读取数据流
- 下载用于从流中读取数据的 C# 库
- 获取并准备图像流数据
- 将图像流传递给 OcrImageInput 构造函数来导入图像
- 使用
读取
方法来执行 OCR - 通过指定裁剪区域来定义阅读区域
读取流示例
首先,实例化 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)