如何从数据流中读取条形码

海瑞尔 哈西米 本 奥马尔
海瑞尔 哈西米 本 奥马尔
2023年三月29日
更新 2024年十月20日
分享:
This article was translated from English: Does it need improvement?
Translated
View the article in English


MemoryStream 是 .NET Framework 中的一个类,它提供了一种方法,可以读取和写入存储在内存中的流。 这是一种流,可用于操作未存储在物理文件中而是存储在内存中的数据。

除了从图像文件或PDF文件读取条形码外,IronBarcode还擅长从流中读取条形码。 作为应用程序中出色的 API,IronBarcode 能够接受 PDF 文档或图像流作为输入,并输出流内条码的读取结果。 现在让我们看看如何实现这一点。

从图像流中读取条形码

在本节中,我们将向您展示如何使用IronBarcode读取图像流,以及存储在List<>中的多个图像流。

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-1.cs
using IronBarCode;
using IronSoftware.Drawing;
using System;
using System.Collections.Generic;
using System.IO;

List<MemoryStream> list = new List<MemoryStream>();
list.Add(AnyBitmap.FromFile("image1.jpg").ToStream());
list.Add(AnyBitmap.FromFile("image2.jpg").ToStream());
list.Add(AnyBitmap.FromFile("image3.png").ToStream());

var myBarcode = BarcodeReader.Read(list);

foreach (var barcode in myBarcode)
{
    Console.WriteLine(barcode.ToString());
}

从上面的代码片段可以看出,IronBarcode 可以接受 MemoryStream 类型的对象以及对象列表到 BarcodeReader.Read() 方法中,并读取流对象。 在上面的代码片段中,我们还介绍了我们的免费开源库 IronDrawing,可以用于将图像转换为MemoryStream对象。 但是,如果您已有一个图像或图像列表作为对象,您可以直接将其作为参数在BarcodeReader.Read()中使用,以读取流中存在的条形码。

从 PDF 文档流读取条形码

在本节中,我们将向您展示如何使用IronBarcode将PDF文档文件读取为MemoryStream对象或PDF文档的MemoryStream列表。

:path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-streams-2.cs
using IronBarCode;
using IronPdf;
using System;
using System.IO;

MemoryStream document = PdfDocument.FromFile(@"file_path.pdf").Stream;

var myBarcode = BarcodeReader.ReadPdf(document);

foreach (var value in myBarcode)
{
    Console.WriteLine(value.ToString());
}

从上面的代码片段可以看出,从 PDF 文档中读取条形码作为MemoryStream对象与作为MemoryStream对象读取条形码没有太大区别。 唯一的区别是用于从 PDF 文档读取条形码的读取方法,即BarcodeReade.ReadPdf(),它接受 PDF 文档作为一个单一的MemoryStream对象。 在上面的代码片段中,我们还使用IronPDF作为助手将PDF文档转换为MemoryStream对象。 如果有多个作为流的 PDF 文档需要 IronBarcode 读取,建议将所有 PDF 文档合并成一个 PDF 文档流,然后传递给 BarcodeReader.ReadPdf() 方法。 所以,请随意尝试并按照您的意愿操作该库!!

海瑞尔 哈西米 本 奥马尔
海瑞尔 哈西米 本 奥马尔
软件工程师
像所有优秀的工程师一样,Hairil 是一个热衷学习的人。他正在精进自己的 C#、Python 和 Java 知识,并利用这些知识为 Iron Software 团队成员增添价值。Hairil 毕业于马来西亚的马来西亚工艺大学(Universiti Teknologi MARA),获得了化学与工艺工程学士学位,然后加入了 Iron Software 团队。