Condividi tramite


Fusione alfa (Windows GDI)

Fusione alfa è usata per visualizzare una mappa di bit alfa, ovvero una mappa di bit con pixel trasparenti o semitrasparenti. 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 tutti i bit di un canale 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 strutturaBLENDFUNCTION.

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;
};

Questa operazione è rappresentata in memoria, come illustrato nella tabella seguente.

31:24

23:16

15:08

07:00

Alfa

Rosso

Verde

Blu

Le bitmap possono anche essere visualizzate con un fattore di trasparenza applicato all'intera bitmap. Qualsiasi formato bitmap può essere visualizzato 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 Alpha Blending a Bitmap.