FAQ TBarCode .NET
Come posso controllare la trasparenza della bitmap
Come posso controllare la trasparenza della bitmap
Quando create un codice a barre in formato bitmap, ci sono due possibilità per regolare lo sfondo:
- IsBackgroundTransparent = TRUE → Quando si disegna il codice a barre (DC, Graphics, Bitmap) vengono disegnate solo le barre, il resto rimane libero
- IsBackgroundTransparent = FALSE → Quando si disegna il codice a barre (DC, Graphics, Bitmap) lo sfondo viene riempito per primo, poi vengono disegnate le barre
Flusso di lavoro consigliato
Se volete creare un codice a barre bitmap con sfondo trasparente, dovete impostare separatamente il colore di trasparenza. Per farlo, disegnate prima su una bitmap, impostate la trasparenza e poi salvatela. Provate una delle due opzioni seguenti:
Opzione n. 1
Disegnate il codice a barre con sfondo bianco:
- IsBackgroundTransparent := FALSE (→ la libreria del codice a barre disegna uno sfondo bianco)
Specificate il colore di trasparenza:
- bitmap.MakeTransparent( Color.White ); //make be background transparent - this will be an index (rather than an alpha) transparency
Codice di esempio in 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 senza oggetto grafico:
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);
Opzione n. 2
Disegnate il codice a barre senza sfondo:
- IsBackgroundTransparent := FALSE (→ la libreria del codice a barre disegna uno sfondo bianco)
Riempite lo sfondo con trasparenza:
- gfx.Clear(Color.Transparent);
Codice di esempio in 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);
Note
- Notate che il codice a barre di esempio non è ottimizzato per i pixel.
- Consigliamo di usare immagini PNG.
- Maggiori informazioni sulla trasparenza si trovano qui.