Preguntas frecuentes sobre TBarCode .NET
¿Cómo puedo controlar la transparencia del mapa de bits?
¿Cómo puedo controlar la transparencia del mapa de bits?
Al crear un código de barras en formato de mapa de bits, hay dos posibilidades para ajustar el fondo:
- IsBackgroundTransparent = TRUE → Al dibujar el código de barras (DC, Graphics, Bitmap) solo se dibujan las barras, el resto queda libre
- IsBackgroundTransparent = FALSE → Al dibujar el código de barras (DC, Graphics, Bitmap) primero se rellena el fondo y después se dibujan las barras
Flujo de trabajo recomendado
Si desea crear un código de barras en mapa de bits con fondo transparente, debe establecer el color de transparencia por separado. Para ello, primero dibuje en un mapa de bits, establezca la transparencia y después guárdelo. Pruebe una de las dos opciones siguientes:
Opción n.º 1
Dibuje el código de barras con fondo blanco:
- IsBackgroundTransparent := FALSE (→ la biblioteca de códigos de barras dibuja un fondo blanco)
Especifique el color de transparencia:
- bitmap.MakeTransparent( Color.White ); //hace que el fondo sea transparente; será una transparencia por índice (en lugar de por alfa)
Código de ejemplo en C#:
Barcode BC = new Barcode();
int width = 300;
int height = 150;
BC.BarcodeType = BarcodeType.Code128;
BC.Data = "12345";
BC.IsBackgroundTransparent = false;
BC.BoundingRectangle = new Rectangle(0, 0, width, height); // Pixel
Bitmap bitmap = new Bitmap(width, height);
Graphics gfx = Graphics.FromImage(bitmap);
BC.Draw(gfx);
bitmap.MakeTransparent(Color.White);
bitmap.Save("c:\\temp\\test1a.png", System.Drawing.Imaging.ImageFormat.Png);
Variante sin objeto Graphics:
Barcode BC = new Barcode();
int width = 300;
int height = 150;
BC.BarcodeType = BarcodeType.Code128;
BC.Data = "12345";
BC.IsBackgroundTransparent = false;
BC.BoundingRectangle = new Rectangle(0, 0, width, height); // Pixel
Bitmap bitmap = BC.DrawBitmap();
bitmap.MakeTransparent(Color.White);
bitmap.Save("c:\\temp\\test1b.png", System.Drawing.Imaging.ImageFormat.Png);
Opción n.º 2
Dibuje el código de barras sin fondo:
- IsBackgroundTransparent := FALSE (→ la biblioteca de códigos de barras dibuja un fondo blanco)
Rellene el fondo con transparencia:
- gfx.Clear(Color.Transparent);
Código de ejemplo en C#:
Barcode BC = new Barcode();
int width = 300;
int height = 150;
BC.BarcodeType = BarcodeType.Code128;
BC.Data = "12345";
BC.IsBackgroundTransparent = true;
BC.BoundingRectangle = new Rectangle(0, 0, width, height); // Pixel
Bitmap bitmap = new Bitmap(width, height);
Graphics gfx = Graphics.FromImage(bitmap);
gfx.Clear(Color.Transparent);
gfx.Flush();
BC.Draw(gfx);
bitmap.Save("c:\\temp\\test2.png", System.Drawing.Imaging.ImageFormat.Png);
Notas
- Tenga en cuenta que el código de barras de ejemplo no está optimizado por píxel.
- Recomendamos usar imágenes PNG.
- Encontrará más información sobre transparencia aquí.