Creando 1BPP Imágenes de Código de Barras en C#
IronBarcode te permite crear imágenes de código de barras monochromáticas 1BPP compactas en C#, reduciendo el tamaño de los archivos mientras mantiene la legibilidad por máquina a través de métodos como To1BppImage(), SaveAs1BppBitmap(), y To1BppBinaryData().
El procesamiento de códigos de barras a granel requiere tener en cuenta el tamaño y las dimensiones. Las imágenes de código de barras 1BPP proporcionan una solución efectiva para el procesamiento rápido y la lectura precisa por máquina. Una imagen 1BPP es monochromática, mostrando solo en blanco y negro. Cada píxel utiliza un solo bit: "0" para negro y "1" para blanco, o viceversa.
Las imágenes de código de barras 1BPP ofrecen el tamaño de archivo más pequeño posible, con cada píxel representado por solo un bit. Su tamaño compacto proporciona eficacia para almacenar y transmitir imágenes de códigos de barras a impresoras, en particular impresoras térmicas, o cuando se optimiza el almacenamiento en bases de datos. Para los desarrolladores que trabajan con múltiples formatos de códigos de barras, las imágenes 1BPP ofrecen un rendimiento consistente en todos los tipos soportados.
IronBarcode admite la conversión de códigos de barras en imágenes 1BPP y más, proporcionando flexibilidad para todas las situaciones. Ya sea que estés creando códigos de barras a partir de diversas fuentes de datos u optimizando flujos de trabajo de códigos de barras existentes, la conversión 1BPP ofrece ventajas significativas. Esta guía cubre todas las opciones que IronBarcode ofrece para crear imágenes de código de barras 1BPP.
1BPP) de 1 bit por píxel
Este ejemplo demuestra cómo IronBarcode produce un código de barras 1BPP compacto y monochromático en solo una línea. Ideal para escaneado de alto contraste y procesamiento masivo rápido.
-
1Install IronBarcode with NuGet Package Manager
-
2Copie y ejecute este fragmento de código.
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() -
3Despliegue para probar en su entorno real
Comienza a usar IronBarcode en tu proyecto hoy mismo con una prueba gratuita
Flujo de trabajo mínimo (5 pasos)
- Descargue la biblioteca IronBarcode C# para escribir códigos de barras
1BPP - Generar un código de barras con
CreateBarcode - Guardar como imagen
1BPPcon To1BppImage - Guardar como Bitmap
1BPPcon SaveAs1BppBitmap - Guardar como datos binarios
1BPPcon To1BppBinaryData
¿Cómo creo imágenes de código de barras 1BPP?
Convertir códigos de barras en imágenes 1BPP es simple usando el método To1BppImage. Este método guarda el código de barras como una imagen 1BPP. El proceso se asemeja al de creación de imágenes de códigos de barras estándar, pero con las ventajas de un tamaño de archivo reducido.
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()La imagen resultante mantiene la información del código de barras al tiempo que reduce drásticamente el tamaño del archivo. Esto resulta útil cuando se trabaja con la personalización del estilo del código de barras, donde la información de color no es necesaria.
¿Por qué el método To1BppImage produce tamaños de archivo más pequeños?
El método To1BppImage produce tamaños de archivo más pequeños al almacenar cada píxel usando solo un bit en lugar de los típicos 24 o 32 bits en imágenes a todo color. Esto logra una relación de compresión de hasta 32:1 en comparación con las imágenes estándar RGBA. Para un código de barras típico de 500x100 píxeles, una imagen a todo color requiere aproximadamente 200KB, mientras que una versión 1BPP necesita solo alrededor de 6KB.
¿Qué formatos de imagen son compatibles para la salida 1BPP?
IronBarcode admite múltiples formatos de imagen para la salida 1BPP: BMP (bitmap), PNG y TIFF. BMP es el más común para imágenes 1BPP debido al soporte nativo de datos monochromáticos. PNG y TIFF también ofrecen excelente compresión para imágenes en blanco y negro. Para obtener más información sobre los formatos compatibles, consulte la guía de formatos de datos de salida.
¿Cuándo debo usar imágenes 1BPP en lugar de formatos estándar de código de barras?
Usa imágenes 1BPP cuando:
- Trabajar con impresoras térmicas o monocromas
- Almacenamiento de miles de códigos de barras en bases de datos
- Transmisión de códigos de barras con ancho de banda limitado
- Integración con sistemas heredados que requieren imágenes monocromas
- Procesamiento de códigos de barras en operaciones masivas en las que el tamaño del archivo importa
¿Cómo guardo códigos de barras como archivos bitmap 1BPP?
Para guardar como bitmap, utiliza el método SaveAs1BppBitmap con una ruta de archivo. Este método resulta útil cuando se necesita exportar códigos de barras para imprimir o archivar.
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")¿Cuáles son los beneficios de usar formato bitmap para códigos de barras 1BPP?
El formato bitmap ofrece varias ventajas para los códigos de barras 1BPP:
- Soporte nativo:
BMPtiene soporte incorporado para la profundidad de color1-bit. - Sin artefactos de compresión:
BMPconserva datos de píxeles exactos a diferencia de JPEG. - Amplia compatibilidad: Compatible con prácticamente todo el software de imagen
- Procesamiento rápido: No es necesario descomprimir para leer
- Print-Ready: Compatibilidad directa con la mayoría de los controladores de impresora
¿Cómo puedo especificar rutas de archivo personalizadas para los mapas de bits guardados?
Especifique rutas de archivo personalizadas utilizando rutas absolutas o relativas. Cuando trabaje en entornos como Azure o AWS Lambda, asegúrese de que dispone de permisos de escritura en el directorio de destino:
// 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)¿Qué ocurre si la ruta del archivo ya existe?
SaveAs1BppBitmap sobrescribe los archivos existentes por defecto. Para evitar sobreescrituras accidentales:
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)¿Cómo convierto códigos de barras a datos binarios 1BPP?
Para guardar como datos binarios, utiliza el método To1BppBinaryData. El formato binario permite utilizar los datos en otros lugares de las aplicaciones e integrarlos con los sistemas existentes. Esta estrategia se asemeja a exportar códigos de barras como flujos pero optimizada para el formato 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();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()¿Por qué necesito datos binarios en lugar de archivos de imagen?
Los datos binarios ofrecen ventajas sobre el almacenamiento basado en archivos:
- Integración con bases de datos: Almacenar directamente en campos BLOB
- Eficiencia de memoria: Sin sobrecarga de E/S de archivos
- Transmisión de API: Facilidad de envío a través de API REST
- Generación dinámica: Cree códigos de barras sin acceso al sistema de archivos
- Despliegue en la nube: Perfecto para entornos sin servidor
¿Cómo puedo integrar datos binarios de códigos de barras con bases de datos?
Los datos de códigos de barras binarios se integran perfectamente con las bases de datos modernas. Este ejemplo muestra el almacenamiento y la recuperación:
// 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 Sub¿Cuáles son los casos de uso más comunes para los datos de códigos de barras binarios?
Los datos de códigos de barras binarios se utilizan habitualmente en:
- API web: Devuelve imágenes de códigos de barras sin archivos temporales
- Generación de informes: incruste códigos de barras directamente en informes PDF
- Sistemas de correo electrónico: Adjuntar códigos de barras a correos electrónicos automatizados
- Sistemas de caché: Almacenar en Redis o Memcached
- Microservicios: Pasar datos de códigos de barras entre servicios
Para escenarios avanzados, explore procesamiento asíncrono de códigos de barras para aplicaciones de gran volumen.
Preguntas Frecuentes
¿Qué son los códigos de barras 1BPP y por qué debo utilizarlos?
las imágenes de códigos de barras 1BPP (1 bit por píxel) son imágenes monocromas que sólo muestran el blanco y el negro, y en las que cada píxel utiliza un solo bit. IronBarcode le permite crear estas imágenes compactas, que ofrecen el tamaño de archivo más pequeño posible a la vez que mantienen la legibilidad en máquina. Son ideales para impresoras térmicas, optimización del almacenamiento en bases de datos y procesamiento masivo de códigos de barras.
¿Cómo puedo crear una imagen de código de barras 1BPP en C#?
Con IronBarcode, puede crear una imagen de código de barras 1BPP en sólo una línea de código utilizando el método To1BppImage(). Simplemente utilice: var img = IronBarCode.BarcodeWriter.CreateBarcode("12345", IronBarCode.BarcodeWriterEncoding.EAN8).To1BppImage();
¿Qué métodos existen para generar códigos de barras 1BPP?
IronBarcode proporciona tres métodos principales para crear imágenes de códigos de barras 1BPP: To1BppImage() para la conversión estándar de imágenes, SaveAs1BppBitmap() para guardar directamente como un archivo de mapa de bits, y To1BppBinaryData() para generar datos binarios adecuados para la transmisión directa a impresoras o sistemas de almacenamiento.
¿Puedo cambiar el tamaño de los códigos de barras antes de convertirlos al formato 1BPP?
Sí, IronBarcode le permite personalizar sus códigos de barras antes de la conversión 1BPP. Puede utilizar el método ResizeTo() para ajustar las dimensiones, asegurándose de que su código de barras cumple los requisitos de tamaño específicos antes de convertirlo al formato compacto 1BPP.
¿Sirven los códigos de barras 1BPP para todos los formatos de código de barras?
IronBarcode permite convertir todos los formatos de código de barras compatibles en imágenes 1BPP. Tanto si trabaja con EAN8, Code128, códigos QR o cualquier otro formato compatible, la conversión 1BPP ofrece un rendimiento uniforme y mantiene la legibilidad automática en todos los tipos.
¿Cuáles son las ventajas de utilizar códigos de barras 1BPP para impresoras térmicas?
las imágenes de códigos de barras 1BPP son especialmente eficaces para las impresoras térmicas porque se adaptan a la capacidad de salida monocroma de la impresora. La conversión 1BPP de IronBarcode reduce significativamente el tamaño de los archivos, lo que permite una transmisión más rápida a las impresoras y flujos de trabajo de impresión más eficientes, especialmente en escenarios de gran volumen.
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 tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.