ColorToARGB

La funzione converte il tipo colore in tipo uint per ottenere rappresentazione ARGB del colore. Formato di colore ARGB viene utilizzato per generare una risorsa grafica, visualizzazione del testo, così come pure la classe libreria standard CCanvas.

uint  ColorToARGB(
   color  clr,          // colore convertito in formato color
   uchar  alpha=255     // canale alfa che gestisce la trasparenza del colore
   );

Parametri

clr

[in] Il valore del colore in variabile tipo di colore.

alpha

[in] Il valore del canale alfa usato per ricevere il colore nel formato ARGB. Il valore può essere impostato da 0 (un colore di un pixel di primo piano non cambia la visualizzazione di uno sottostante) fino a 255 (un colore di un pixel sottostante viene completamente sostituito dal pixel di primo piano). La trasparenza del colore in termini percentuali è calcolata come (1-alpha/255) * 100%. In altre parole, il valore minore del canale alfa porta ad un colore più trasparente.

Valore restituito

Presentando il colore in formato ARGB dove Alfa, Rosso, Verde, Blu valori (canale alfa, rosso, verde, blu) sono impostati in serie, in quattro byte di tipo uint.

Nota

RGB è un formato di base e comunemente usato per la descrizione del colore del pixel su uno schermo in computer grafica. I nomi dei colori di base sono utilizzati per impostare componenti di colore rosso, verde e blu. Ogni componente è descritto da un byte specificando la saturazione di colore nell'intervallo da 0 a 255 (0x00 a 0xFF in formato esadecimale). Poiché il colore bianco contiene tutti i colori, è descritto come 0xFFFFFF, dove, ognuno di questi tre componenti viene presentato dal valore massimo di 0xFF.

Tuttavia, alcune operazioni richiedono di specificare la trasparenza del colore per descrivere l'aspetto di un'immagine nel caso esso sia coperto dal colore con un certo grado di trasparenza. Il concetto di canale alfa viene introdotto per tali casi. È implementato come un componente aggiuntivo di formato RGB. La struttura di formato ARGB è riportata di seguito.

ARGB

Valori ARGB sono tipicamente espressi utilizzando formato esadecimale con ogni coppia di cifre che rappresentano i valori Alfa dei canali, rosso, verde e blu, i canali, rispettivamente. Ad esempio, il colore 80FFFF00 rappresenta il 50,2% giallo opaco. Inizialmente, 0x80 imposta valore alfa a 50,2%, come è 50,2% del valore 0xFF. Poi, la prima coppia FF definisce il valore massimo del componente rosso; la prossima coppia FF è simile alla precedente, ma per la componente verde; la coppia finale 00 rappresenta il valore più basso che il componente blu può avere (assenza di blu). La combinazione di colori verde e rosso produce giallo. Se non si utilizza il canale alfa, la voce può essere ridotta fino al 6 cifre RRVVBB, questo è il motivo per cui i valori del canale alfa vengono memorizzati nei migliori bits di tipo uint.

A seconda del contesto, cifre esadecimali possono essere scritte con il prefisso '0x' o '#', per esempio, 80FFFF00, 0x80FFFF00 o #80FFFF00.

 

Esempio:

//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script                                         |
//+--------------------------------------------------------------------------------+
voidOnStart()
  {
//--- imposta trasparenza
   uchar alpha=0x55;  // 0x55 significa 55/255=21.6 % di trasparenza   
   //--- deriva la conversione ad ARGB per il colore clrBlue
   PrintFormat("0x%.8X - clrBlue",clrBlue);
   PrintFormat("0x%.8X - clrBlue ARGB con alpha=0x55 (trasparenza 21.6%%)",ColorToARGB(clrBlue,alpha));
   //--- deriva la conversione in ARGB per il colore clrGreen
   PrintFormat("0x%.8X - clrGreen",clrGreen);
   PrintFormat("0x%.8X - clrGreen ARGB con alpha=0x55 (trasparenza 21.6%%)",ColorToARGB(clrGreen,alpha));
   //--- deriva la conversione in ARGB per il colore clrRed
   PrintFormat("0x%.8X - clrRed",clrRed);
   PrintFormat("0x%.8X - clrRed ARGB con alpha=0x55 (trasparenza 21.6%%)",ColorToARGB(clrRed,alpha));
  }

Vedi anche

Resources, ResourceCreate(), TextOut(), color type, char, short, int and long types