Condividi tramite


Alpha Blending (Windows GDI)

La fusione alfa viene usata per visualizzare una bitmap alfa, ovvero una bitmap con pixel trasparenti o semitrasparti. Oltre a un canale di colore rosso, verde e blu, ogni pixel in una bitmap alfa ha un componente di trasparenza noto come canale alfa. Il canale alfa contiene in genere un numero di bit pari a un canale di colore. Ad esempio, un canale alfa a 8 bit può rappresentare 256 livelli di trasparenza, da 0 (l'intera bitmap è trasparente) a 255 (l'intera bitmap è opaca).

I meccanismi di fusione alfa vengono richiamati chiamando AlphaBlend, che fa riferimento alla struttura BLENDFUNCTION .

I valori alfa per pixel sono supportati solo per BI_RGB da 32 bpp. Questa formula è definita come:

typedef struct {
  BYTE   Blue;
  BYTE   Green;
  BYTE   Red;
  BYTE   Alpha;
};

Questo valore è rappresentato in memoria, come illustrato nella tabella seguente.

31:24

23:16

15:08

07:00

Alfa

Red

Green

Blu

Le bitmap possono essere visualizzate anche con un fattore di trasparenza applicato all'intera bitmap. È possibile visualizzare qualsiasi formato bitmap con un valore alfa costante globale impostando SourceConstantAlpha nella struttura BLENDFUNCTION . Il valore alfa costante globale ha 256 livelli di trasparenza, da 0 (l'intera bitmap è completamente trasparente) a 255 (l'intera bitmap è completamente opaca). Il valore alfa costante globale viene combinato con il valore alfa per pixel.

Per un esempio, vedere Fusione alfa di una bitmap.