在C#中创建1BPP条形码图像

Curtis Chau
Curtis Chau
Updated: 2026年5月9日

IronBarcode让您可以在C#中创建紧凑的To1BppBinaryData()等方法在减少文件大小的同时保持机器可读性。

批量条形码处理需要考虑大小和尺寸。 1BPP条形码图像提供了快速处理和精确机器读取的有效解决方案。 1BPP图像是单色的,仅显示黑色和白色。每个像素使用一个比特表示——"0"表示黑色,"1"表示白色,或反之。

1BPP条形码图像提供了可能的最小文件大小,每个像素仅用一个比特表示。 这种小巧的尺寸为向打印机(尤其是热敏打印机)存储和传输条形码图像或优化数据库存储时提供了效率。 对于使用多种条形码格式的开发人员,1BPP图像在所有支持的类型中提供了一致的性能。

IronBarcode支持将条形码转换为1BPP图像及更多,提供了灵活性以适应所有情况。 无论您是从各种数据源创建条形码还是优化现有条形码工作流,1BPP转换都带来显著优势。 本指南涵盖了IronBarcode提供的所有创建1BPP条形码图像的选项。

1BPP)条形码图像@@--AH2EG--@@

这个示例演示了IronBarcode如何在一行中生成紧凑的单色1BPP条形码。适合对比度高的扫描和快速批量处理。

  1. 1Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode

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

    var img = IronBarCode.BarcodeWriter.CreateBarcode("12345", IronBarCode.BarcodeWriterEncoding.EAN8).To1BppImage();
  3. 3部署到您的生产环境中进行测试

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

我该如何创建1BPP条形码图像?

使用1BPP图像很简单。 该方法将条形码保存为1BPP图像。 该过程类似于创建标准条形码图像,但文件大小有所减小。

using IronBarCode;

// Create a barcode with "12345" encoded in the EAN8 format
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);

// Converts the barcode into a 1bpp image
var anyBitmap = myBarcode.To1BppImage();

翻译后的图像既保留了条形码信息,又极大地减小了文件大小。这在使用条形码样式定制时非常有用,因为在这种情况下不需要颜色信息。

为什么To1BppImage方法生成的文件大小更小?

32比特的全彩色图像,生成更小的文件大小。 这相比标准32:1的压缩比。 对于典型的6KB。

1BPP输出支持哪些图像格式?

IronBarcode支持多个图像格式进行TIFF。 1BPP图像的,由于其原生的单色数据支持。 TIFF对于黑白图像也提供了出色的压缩。 有关支持格式的详细信息,请参阅 输出数据格式指南。

什么时候我应该使用1BPP图像而不是标准条形码格式?

使用1BPP图像当:

  • 使用热敏打印机或单色打印机
  • 在数据库中存储数千个 BarCode
  • 通过有限的带宽传输 BarCode
  • 与需要单色图像的遗留系统集成
  • 在文件大小很重要的批量操作中处理 BarCode

我如何将条形码保存为1BPP位图文件?

要保存为位图,请使用路径调用SaveAs1BppBitmap方法。 当您需要导出条形码用于打印或存档时,这种方法证明非常有用。

using IronBarCode;

// Create a barcode with "12345" encoded in the EAN8 format
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);

// Save the barcode as a 1bpp Bitmap
myBarcode.SaveAs1BppBitmap("1bppImage.bmp");

使用位图格式保存1BPP条形码有什么好处?

位图格式为1BPP条形码提供了几项优点:

  • 原生支持:1-bit色深
  • 无压缩伪影:BMP保留精确像素数据不同于JPEG
  • 广泛的兼容性:几乎所有图像软件都支持
  • 快速处理:阅读时无需解压缩
  • 打印就绪:与大多数打印机驱动程序直接兼容

如何为保存的位图指定自定义文件路径?

使用绝对路径或相对路径指定自定义文件路径。 在 Azure 或 AWS Lambda 等环境中工作时,请确保目标目录的写入权限:

// Relative path
myBarcode.SaveAs1BppBitmap("./output/barcode.bmp");

// Absolute path
myBarcode.SaveAs1BppBitmap(@"C:\BarcodeOutput\barcode.bmp");

// Using environment variables
string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "barcode.bmp");
myBarcode.SaveAs1BppBitmap(path);

如果文件路径已经存在,会发生什么情况?

SaveAs1BppBitmap默认会覆盖现有文件。 防止意外覆盖:

string filePath = "barcode.bmp";
if (File.Exists(filePath))
{
    // Add timestamp or increment filename
    filePath = $"barcode_{DateTime.Now:yyyyMMdd_HHmmss}.bmp";
}
myBarcode.SaveAs1BppBitmap(filePath);

我如何将条形码转换为1BPP二进制数据?

要保存为二进制数据,请使用To1BppBinaryData方法。 二进制格式使数据可以在应用程序的其他地方使用,并与现有系统集成。 这种方法类似将条形码导出为流,但针对1BPP格式进行了优化。

using IronBarCode;

// Create a barcode with "12345" encoded in the EAN8 format
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);

// Save the barcode as a 1pp binary data object
var byteData = myBarcode.To1BppBinaryData();

为什么我需要二进制数据而不是图像文件?

二进制数据比基于文件的存储更具优势:

  • 数据库集成:直接存储在 BLOB 字段中
  • 内存效率:无文件 I/O 开销
  • API传输:通过REST API轻松发送
  • 动态生成:无需访问文件系统即可创建 BarCode
  • 云部署:完美适用于无服务器环境

如何将二进制 BarCode 数据与数据库集成?

二进制 BarCode 数据可与现代数据库无缝集成。 此示例显示了存储和检索:

// Storing barcode in database
public void StoreBarcodeInDatabase(string barcodeValue, string connectionString)
{
    var barcode = BarcodeWriter.CreateBarcode(barcodeValue, BarcodeWriterEncoding.Code128);
    byte[] barcodeData = barcode.To1BppBinaryData();
    
    using (SqlConnection conn = new SqlConnection(connectionString))
    {
        string query = "INSERT INTO BarcodeTable (Value, ImageData, CreatedDate) VALUES (@value, @data, @date)";
        using (SqlCommand cmd = new SqlCommand(query, conn))
        {
            cmd.Parameters.AddWithValue("@value", barcodeValue);
            cmd.Parameters.AddWithValue("@data", barcodeData);
            cmd.Parameters.AddWithValue("@date", DateTime.Now);
            
            conn.Open();
            cmd.ExecuteNonQuery();
        }
    }
}

二进制 BarCode 数据的常见用例有哪些?

二进制 BarCode 数据常用于:

  • Web API:无需临时文件即可返回 BarCode 图像
  • 报告生成:将条形码直接嵌入到 PDF 报告中
  • 电子邮件系统:为自动发送的电子邮件附加 BarCode
  • 缓存系统:存储在 Redis 或 Memcached 中
  • 微服务:在服务之间传递 BarCode 数据

对于高级应用场景,请探讨 用于大容量应用的异步条形码处理。

常见问题解答

什么是 1BPP BarCode 图像,为什么要使用它们?

1BPP(每像素 1 位)条形码图像是仅显示黑白的单色图像,每个像素仅使用一位。IronBarcode 使您能够创建这些紧凑的图像,在保持机器可读性的同时提供尽可能小的文件大小。它们是热敏打印机、数据库存储优化和批量条形码处理的理想选择。

如何在 C# 中创建 1BPP BarCode 图像?

using IronBarcode,您只需使用 To1BppImage() 方法编写一行代码即可创建 1BPP 条形码图像。只需使用: var img = IronBarCode.BarcodeWriter.CreateBarcode("12345", IronBarCode.BarcodeWriterEncoding.EAN8).To1BppImage();

生成 1BPP BarCode 有哪些方法?

IronBarcode 为创建 1BPP 条形码图像提供了三种主要方法:To1BppImage()用于标准图像转换,SaveAs1BppBitmap()用于直接保存为位图文件,To1BppBinaryData()用于生成适合直接传输到打印机或存储系统的二进制数据。

在将条形码转换为 1BPP 格式之前,能否调整条形码的大小?

是的,IronBarcode 允许您在 1BPP 转换之前自定义您的条形码。您可以使用 ResizeTo() 方法调整尺寸,确保您的条形码在转换为紧凑的 1BPP 格式之前满足特定的尺寸要求。

1BPP 条形码是否适用于所有条形码格式?

IronBarcode 支持将其支持的所有条码格式转换为 1BPP 图像。无论您使用的是 EAN8、Code128、QR 码还是任何其他支持的格式,1BPP 转换都能提供一致的性能,并保持所有类型的机器可读性。

热敏打印机使用 1BPP BarCode 有什么好处?

1BPP 条形码图像对于热敏打印机特别有效,因为它们与打印机的单色输出能力相匹配。IronBarcode 的 1BPP 转换可显著减少文件大小,从而更快地传输到打印机,并提高打印工作流程的效率,尤其是在大批量生产的情况下。

What are the advantages of using binary data for 1BPP barcodes?

Using binary data for 1BPP barcodes offers several advantages, such as easy integration with databases, memory efficiency for applications, straightforward transmission via APIs, and suitability for serverless cloud deployments.

How can I integrate 1BPP binary barcode data with a database?

You can integrate 1BPP binary barcode data with a database by storing the byte array directly in a BLOB field. This allows for efficient storage and retrieval without the need for file-based systems.

When should I use 1BPP images instead of standard barcode formats?

1BPP images should be used when working with devices or applications that require monochrome printing, when storing a large number of barcodes in databases, transmitting over restricted bandwidth, or integrating with legacy systems that need monochrome images.

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

阅读更多

准备开始了吗?

Nuget Downloads 2,549,320版本:2026.11刚刚发布