Creating 1BPP Barcode Images in C#
IronBarcode enables you to create compact 1BPP monochrome barcode images in C#, reducing file sizes while maintaining machine readability through methods like To1BppImage(), SaveAs1BppBitmap(), and To1BppBinaryData().
Bulk barcode processing requires consideration of size and dimensions. 1BPP barcode images provide an effective solution for quick processing and accurate machine reading. A 1BPP image is monochrome, displaying only black and white. Each pixel uses a single bit - "0" for black and "1" for white, or vice versa.
1BPP barcode images offer the smallest possible file size, with each pixel represented by just one bit. This compact size provides efficiency for storing and transmitting barcode images to printers, particularly thermal printers or when optimizing database storage. For developers working with multiple barcode formats, 1BPP images deliver consistent performance across all supported types.
IronBarcode supports converting barcodes into 1BPP images and more, providing flexibility for all situations. Whether you're creating barcodes from various data sources or optimizing existing barcode workflows, 1BPP conversion offers significant advantages. This guide covers all the options IronBarcode offers for creating 1BPP barcode images.
1BPP) Barcode Image
This example demonstrates how IronBarcode produces a compact, monochrome 1BPP barcode in just one line. Ideal for high-contrast scanning and fast bulk processing.
-
1Install IronBarcode with NuGet Package Manager
-
2Copy and run this code snippet.
var img = IronBarCode.BarcodeWriter.CreateBarcode("12345", IronBarCode.BarcodeWriterEncoding.EAN8).To1BppImage();Dim img = IronBarCode.BarcodeWriter.CreateBarcode("12345", IronBarCode.BarcodeWriterEncoding.EAN8).To1BppImage()Dim img = IronBarCode.BarcodeWriter.CreateBarcode("12345", IronBarCode.BarcodeWriterEncoding.EAN8).To1BppImage() -
3Deploy to test on your live environment
Start using IronBarcode in your project today with a free trial
Minimal Workflow (5 steps)
- Download the IronBarcode C# library to write
1BPPbarcodes - Generate a barcode with
CreateBarcode - Save as a
1BPPimage with To1BppImage - Save as a
1BPPBitmap with SaveAs1BppBitmap - Save as
1BPPbinary data with To1BppBinaryData
How Do I Create 1BPP Barcode Images?
Converting barcodes into 1BPP images is simple using the To1BppImage method. This method saves the barcode as a 1BPP image. The process resembles creating standard barcode images but with reduced file size benefits.
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();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();Imports IronBarCode
' Create a barcode with "12345" encoded in the EAN8 format
Dim myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8)
' Converts the barcode into a 1bpp image
Dim anyBitmap = myBarcode.To1BppImage()Imports IronBarCode
' Create a barcode with "12345" encoded in the EAN8 format
Dim myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8)
' Converts the barcode into a 1bpp image
Dim anyBitmap = myBarcode.To1BppImage()The resulting image maintains barcode information while dramatically reducing file size. This proves useful when working with barcode style customization where color information isn't necessary.
Why does the To1BppImage method produce smaller file sizes?
The To1BppImage method produces smaller file sizes by storing each pixel using only one bit instead of the typical 24 or 32 bits in full-color images. This achieves a compression ratio up to 32:1 compared to standard RGBA images. For a typical 500x100 pixel barcode, a full-color image requires approximately 200KB, while a 1BPP version needs only about 6KB.
What image formats are supported for 1BPP output?
IronBarcode supports multiple image formats for 1BPP output: BMP (bitmap), PNG, and TIFF. BMP is most common for 1BPP images due to native monochrome data support. PNG and TIFF also offer excellent compression for black-and-white images. For details on supported formats, see the output data formats guide.
When should I use 1BPP images instead of standard barcode formats?
Use 1BPP images when:
- Working with thermal or monochrome printers
- Storing thousands of barcodes in databases
- Transmitting barcodes over limited bandwidth
- Integrating with legacy systems requiring monochrome images
- Processing barcodes in bulk operations where file size matters
How Do I Save Barcodes as 1BPP Bitmap Files?
To save as a bitmap, use the SaveAs1BppBitmap method with a file path. This method proves useful when you need to export barcodes for printing or archival purposes.
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");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");Imports IronBarCode
' Create a barcode with "12345" encoded in the EAN8 format
Dim myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8)
' Save the barcode as a 1bpp Bitmap
myBarcode.SaveAs1BppBitmap("1bppImage.bmp")Imports IronBarCode
' Create a barcode with "12345" encoded in the EAN8 format
Dim myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8)
' Save the barcode as a 1bpp Bitmap
myBarcode.SaveAs1BppBitmap("1bppImage.bmp")What are the benefits of using bitmap format for 1BPP barcodes?
Bitmap format offers several advantages for 1BPP barcodes:
- Native Support:
BMPhas built-in1-bitcolor depth support - No Compression Artifacts:
BMPpreserves exact pixel data unlike JPEG - Wide Compatibility: Supported by virtually all image software
- Fast Processing: No decompression needed for reading
- Print-Ready: Direct compatibility with most printer drivers
How do I specify custom file paths for saved bitmaps?
Specify custom file paths using absolute or relative paths. When working in environments like Azure or AWS Lambda, ensure write permissions for the target directory:
// 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);// 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);' Relative path
myBarcode.SaveAs1BppBitmap("./output/barcode.bmp")
' Absolute path
myBarcode.SaveAs1BppBitmap("C:\BarcodeOutput\barcode.bmp")
' Using environment variables
Dim path As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "barcode.bmp")
myBarcode.SaveAs1BppBitmap(path)' Relative path
myBarcode.SaveAs1BppBitmap("./output/barcode.bmp")
' Absolute path
myBarcode.SaveAs1BppBitmap("C:\BarcodeOutput\barcode.bmp")
' Using environment variables
Dim path As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "barcode.bmp")
myBarcode.SaveAs1BppBitmap(path)What happens if the file path already exists?
SaveAs1BppBitmap overwrites existing files by default. To prevent accidental overwrites:
string filePath = "barcode.bmp";
if (File.Exists(filePath))
{
// Add timestamp or increment filename
filePath = $"barcode_{DateTime.Now:yyyyMMdd_HHmmss}.bmp";
}
myBarcode.SaveAs1BppBitmap(filePath);string filePath = "barcode.bmp";
if (File.Exists(filePath))
{
// Add timestamp or increment filename
filePath = $"barcode_{DateTime.Now:yyyyMMdd_HHmmss}.bmp";
}
myBarcode.SaveAs1BppBitmap(filePath);Dim filePath As String = "barcode.bmp"
If File.Exists(filePath) Then
' Add timestamp or increment filename
filePath = $"barcode_{DateTime.Now:yyyyMMdd_HHmmss}.bmp"
End If
myBarcode.SaveAs1BppBitmap(filePath)Dim filePath As String = "barcode.bmp"
If File.Exists(filePath) Then
' Add timestamp or increment filename
filePath = $"barcode_{DateTime.Now:yyyyMMdd_HHmmss}.bmp"
End If
myBarcode.SaveAs1BppBitmap(filePath)How Do I Convert Barcodes to 1BPP Binary Data?
To save as binary data, use the To1BppBinaryData method. Binary format enables data use elsewhere in applications and integration with existing systems. This approach resembles exporting barcodes as streams but optimized for 1BPP format.
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();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();Imports IronBarCode
' Create a barcode with "12345" encoded in the EAN8 format
Dim myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8)
' Save the barcode as a 1pp binary data object
Dim byteData = myBarcode.To1BppBinaryData()Imports IronBarCode
' Create a barcode with "12345" encoded in the EAN8 format
Dim myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8)
' Save the barcode as a 1pp binary data object
Dim byteData = myBarcode.To1BppBinaryData()Why would I need binary data instead of image files?
Binary data offers advantages over file-based storage:
- Database Integration: Store directly in BLOB fields
- Memory Efficiency: No file I/O overhead
- API Transmission: Easy to send via REST APIs
- Dynamic Generation: Create barcodes without filesystem access
- Cloud Deployment: Perfect for serverless environments
How can I integrate binary barcode data with databases?
Binary barcode data integrates with modern databases. This example shows storage and retrieval:
// 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();
}
}
}// 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();
}
}
}' Storing barcode in database
Public Sub StoreBarcodeInDatabase(barcodeValue As String, connectionString As String)
Dim barcode = BarcodeWriter.CreateBarcode(barcodeValue, BarcodeWriterEncoding.Code128)
Dim barcodeData As Byte() = barcode.To1BppBinaryData()
Using conn As New SqlConnection(connectionString)
Dim query As String = "INSERT INTO BarcodeTable (Value, ImageData, CreatedDate) VALUES (@value, @data, @date)"
Using cmd As New SqlCommand(query, conn)
cmd.Parameters.AddWithValue("@value", barcodeValue)
cmd.Parameters.AddWithValue("@data", barcodeData)
cmd.Parameters.AddWithValue("@date", DateTime.Now)
conn.Open()
cmd.ExecuteNonQuery()
End Using
End Using
End Sub' Storing barcode in database
Public Sub StoreBarcodeInDatabase(barcodeValue As String, connectionString As String)
Dim barcode = BarcodeWriter.CreateBarcode(barcodeValue, BarcodeWriterEncoding.Code128)
Dim barcodeData As Byte() = barcode.To1BppBinaryData()
Using conn As New SqlConnection(connectionString)
Dim query As String = "INSERT INTO BarcodeTable (Value, ImageData, CreatedDate) VALUES (@value, @data, @date)"
Using cmd As New SqlCommand(query, conn)
cmd.Parameters.AddWithValue("@value", barcodeValue)
cmd.Parameters.AddWithValue("@data", barcodeData)
cmd.Parameters.AddWithValue("@date", DateTime.Now)
conn.Open()
cmd.ExecuteNonQuery()
End Using
End Using
End SubWhat are common use cases for binary barcode data?
Binary barcode data is commonly used in:
- Web APIs: Return barcode images without temporary files
- Report Generation: Embed barcodes directly into PDF reports
- Email Systems: Attach barcodes to automated emails
- Cache Systems: Store in Redis or Memcached
- Microservices: Pass barcode data between services
For advanced scenarios, explore asynchronous barcode processing for high-volume applications.
Frequently Asked Questions
What is a 1BPP barcode image?
A 1BPP (1 Bit Per Pixel) barcode image is a monochrome image format that only uses two colors, typically black and white. Each pixel in the image is represented by a single bit, which reduces file size significantly. This format is ideal for compact storage and fast processing of barcodes.
How can I create a 1BPP barcode image using IronBarcode?
To create a 1BPP barcode image with IronBarcode, you can use the To1BppImage() method. This method converts a standard barcode into a 1BPP format, allowing for smaller file size and faster processing.
What are the benefits of using 1BPP images for barcodes?
1BPP images provide smaller file sizes and faster processing due to their monochrome format. They are exceptionally useful for integrating with thermal or monochrome printers, reducing storage needs, and efficiently transmitting barcodes over networks with limited bandwidth.
How can I save a barcode as a 1BPP bitmap using IronBarcode?
You can save a barcode as a 1BPP bitmap using IronBarcode's SaveAs1BppBitmap() method, which allows you to export the barcode image to a bitmap format suitable for printing and archival purposes.
Which image formats support 1BPP output using IronBarcode?
IronBarcode supports several image formats for 1BPP output, including BMP, PNG, and TIFF. BMP is commonly used due to its native support for monochrome images, while PNG and TIFF offer excellent compression options.
How do I prevent overwriting existing files when saving 1BPP barcodes?
To prevent overwriting existing files when using SaveAs1BppBitmap, you can check if the file path already exists and modify the filename by adding a timestamp or incrementing the filename before saving.
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 holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.