IRONSOFTWAREHOME

How to Read Barcodes from Streams with C#

Hairil Hasyimi Bin Omar
Hairil Hasyimi Bin Omar
Updated: 2026年6月4日

IronBarcode可直接从.NET应用程序中的MemoryStream对象读取条形码,省去了先将流保存到磁盘的步骤。这样可以高效地从存储在内存中的图像和PDF文档流中处理条形码。

MemoryStream是一个.NET Framework类,可以从内存存储的流中读取并写入。 它无需物理文件即可处理数据,而是将数据存储在内存中。 这种方法适用于网络应用程序、API 或以字节数组形式接收条形码数据或需要在不创建临时文件的情况下处理图像的场景。

除了从图像文件PDF文件中读取条形码外,IronBarcode 还可以从数据流中读取条形码。 该库接受 PDF 文档或图像流作为输入,并输出条形码读取结果。 该功能适合处理来自数据库、网络上传或内存缓存内容的数据。

快速入门:从图像流直接读取条形码

using IronBarcode 只需两行代码即可从任何图像流中读取条形码--无需写入磁盘。 本示例演示了在 .NET 中基于流的 BarCode 读取。

  1. 1Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

  2. 2复制并运行这段代码。

    var result = IronBarCode.BarcodeReader.Read(myImageStream);
    Console.WriteLine(result[0].Text);
    C#
  3. 3部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronBarcode
    arrow pointer

如何从图像流中读取 BarCode?

为什么使用内存流而不是文件?

与基于文件的操作相比,内存流具有多项优势。 它们消除了磁盘 I/O 开销,使应用程序速度更快。 由于敏感的 BarCode 数据从未接触过磁盘,因此它们提高了安全性。 它们还适用于磁盘访问有限或昂贵的云环境。结合 IronBarcode 的 async 和多线程功能,您可以同时处理多个数据流,以获得最高性能。

本节展示如何使用IronBarcode读取存储在List<MemoryStream>中的图像流和多个图像流。 以下代码包含注释,用于解释翻译过程:

支持哪些类型的图像格式?

IronBarcode 从数据流中读取数据时支持多种图像格式:JPEG、PNG、GIF、TIFF、BMP 和 SVG。 这种灵活性允许处理条形码图像,而无需考虑源格式。 为获得最佳效果,请使用条码阅读器设置对阅读过程进行微调。

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对象的列表。 该示例将图像文件转换为MemoryStream对象,并直接从流中读取条形码。

在处理多个数据流时,IronBarcode 会高效地使用其读取速度选项。 根据您的需求调整阅读速度--无论是要求最高的准确性还是最快的处理时间。对于从一个数据流中读取多个条码,IronBarcode会自动检测并返回所有找到的条码。

为提高流中不完美或低质量图像的准确性,请在处理前应用图像校正过滤器。 这样可以大大提高 BarCode 的识别率。

如何从 PDF 文档流中读取 BarCode?

为什么使用Read()?

Read()方法的优势。 它能有效处理 PDF 的特定功能,如多页文档、矢量图形和嵌入式图像。 该方法可自动处理所有 PDF 页面,并可处理各种 PDF 格式和压缩类型。有关全面的功能,请参阅读取 BarCode 教程

本节演示如何使用IronBarcode将PDF文档文件读取为MemoryStream对象或PDF文档流的列表。 以下是代码:

多个 PDF 文档怎么办?

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 流?

从PDF文档中作为MemoryStream对象读取条形码类似于从图像中读取。 关键区别在于方法:BarcodeReader.ReadPdf()专门处理PDF文档。 该示例使用IronPDF将PDF文档转换为MemoryStream对象。

对于多个PDF文档,将所有PDF合并为一个文档流,然后再输入到BarcodeReader.ReadPdf()。 与单独处理每个 PDF 相比,这种方法处理效率更高,还能减少内存开销。 配置PDF 专用条形码阅读器设置,以优化文档的读取。

对于高级场景,可处理特定页面或 PDF 区域。 IronBarcode 允许指定页面范围和页面内的裁剪区域,针对出现条形码的区域进行裁剪。 这样可以提高大型文档的处理速度。

在生产环境中使用流时,正确处置MemoryStream对象以防止内存泄漏。 using语句确保自动处置:

using (MemoryStream pdfStream = new MemoryStream(pdfBytes))
{
    var results = BarcodeReader.ReadPdf(pdfStream);
    // Process results
}

请根据您的具体需求尝试和调整该库。 IronBarcode 灵活的 API 允许广泛的读取过程定制,从调整检测灵敏度到指定预期的条码格式。

常见问题解答

如何在不先保存到磁盘的情况下从数据流中读取 BarCode?

IronBarcode 允许您直接从 MemoryStream 对象读取条形码,而无需保存到磁盘。只需将您的数据流传递给 BarcodeReader.Read() 方法即可。这种方法消除了磁盘 I/O 的开销,非常适合处理来自网络上传、数据库或 API 的图像。

条码阅读器在处理数据流时支持哪些图像格式?

IronBarcode 从数据流中读取数据时支持多种图像格式,包括 JPEG、PNG、GIF、TIFF、BMP 和 SVG。这种灵活性使您无需进行格式转换即可处理各种来源的条码图像。

我可以同时处理多个 BarCode 图像流吗?

是的,IronBarcode 支持异步和多线程功能,允许您同时处理多个条码流以获得最高性能。这在处理内存中的批量条码读取操作时尤其有用。

与基于文件的条形码读取相比,使用内存流有哪些优势?

using IronBarcode 进行内存流处理可消除磁盘 I/O 开销,从而提供更快的性能;由于敏感数据从不接触磁盘存储,因此安全性得到了增强;在磁盘访问可能受限或昂贵的云环境中,兼容性更好。

如何从 PDF 文档流中读取 BarCode?

IronBarcode 可以从图像和 PDF 文档流中读取条形码。只需将您的 PDF MemoryStream 传递给 BarcodeReader.Read() 方法,它便会提取并解码 PDF 页面中的所有条码。

在使用数据流时,是否可以对条形码读取过程进行微调?

是的,IronBarcode 提供可定制的条码阅读器设置,允许您根据具体使用情况优化读取过程,无论是处理单个数据流还是存储在集合中的多个数据流。

How do I manage multiple PDF streams for barcode reading with IronBarcode?

For multiple PDFs, merge them into a single document stream and process with `BarcodeReader.ReadPdf()`. This approach enhances efficiency by reducing processing overhead and memory usage.

What steps are involved in reading a barcode from an image stream using IronBarcode?

First, instantiate a `MemoryStream` for your image data, then call `BarcodeReader.Read()` on the stream. This simple process allows for direct barcode extraction from in-memory data.

How can IronBarcode handle image correction for low-quality images?

IronBarcode provides image correction filters, improving barcode recognition rates for imperfect or low-quality image streams, enhancing overall reading accuracy.

How do I ensure efficient memory usage when processing streams with IronBarcode?

Ensure to dispose of `MemoryStream` objects after use, ideally with a `using` statement to prevent memory leaks. This practice is crucial in production to maintain optimal performance.

准备开始了吗?

Nuget Downloads 2,422,100版本:2026.9刚刚发布

免费获取

30天试用密钥 即刻获取。

bullet_checked无需信用卡或创建账户
bullet_test在生产环境中测试
且无水印
bullet_calendar30天完全
功能性产品
bullet_support试用期间提供
24/5技术支持
立即获取您的免费30 天试用密钥
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package BarCode
nuget.org/packages/BarCode/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 "IronBarcode"
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

  1. 下载并将 IronBarCode 解压到解决方案目录中的 ~/Libs 等位置
  2. 在 Visual Studio 解决方案资源管理器中,右键单击引用。选择浏览,"IronBarcode.dll"

许可 $999

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户