Differenze tra le versioni di "Convertire il formato RGBA di un colore nei corrispondenti valori decimale ed esadecimale"
Da Gambas-it.org - Wikipedia.
(4 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | Per convertire il formato standard RGBA di un colore nei corrispondenti valori decimale ed esadecimale, come previsto in Gambas <SUP>[[[#Note| | + | Per convertire il formato standard RGBA di un colore nei corrispondenti valori decimale ed esadecimale, come previsto in Gambas <SUP>[[[#Note|nota 1]]]</sup>, possiamo adottare il calcolo contenuto nel seguente codice: |
− | + | Public Sub Main() | |
− | |||
− | |||
− | |||
+ | Dim b, g, r, a As Byte | ||
+ | Dim colore As Long | ||
+ | |||
<FONT Color=gray>' ''Poniamo un valore per gli elementi dello standard RGBA:''</font> | <FONT Color=gray>' ''Poniamo un valore per gli elementi dello standard RGBA:''</font> | ||
<FONT Color=red>r</font> = 100 | <FONT Color=red>r</font> = 100 | ||
<FONT Color=green>g</font> = 150 | <FONT Color=green>g</font> = 150 | ||
<FONT Color=blue>b</font> = 0 | <FONT Color=blue>b</font> = 0 | ||
− | a = 255 <FONT Color=gray>' ''Nello standard RGBA il valore 255, assegnato al canale Alfa corrisponde alla | + | a = 255 <FONT Color=gray>' ''Nello standard RGBA il valore 255, assegnato al canale Alfa corrisponde alla piena opacità del colore,'' |
+ | ' ''mentre il valore 0 corrisponde alla piena trasparenza !''</font> | ||
− | <FONT Color=gray>' ''Poiché in Gambas il valore zero, assegnato al canale Alfa corrisponde alla piena opacità al colore, mentre il valore 255 corrisponde alla piena trasparenza, è necessaria la conversione del valore Alfa:''</font> | + | <FONT Color=gray>' ''Poiché in Gambas (contrariamente alo standard RGBA) il valore zero, assegnato al canale Alfa corrisponde alla piena opacità al colore, mentre il valore 255 corrisponde alla piena trasparenza, è necessaria la conversione del valore Alfa:''</font> |
a = 255 - a | a = 255 - a | ||
Riga 18: | Riga 19: | ||
Print colore, Hex(colore, 8) | Print colore, Hex(colore, 8) | ||
− | + | End | |
Riga 24: | Riga 25: | ||
=Note= | =Note= | ||
[1] ATTENZIONE ! In Gambas il colore di formato RGBA è così composto: | [1] ATTENZIONE ! In Gambas il colore di formato RGBA è così composto: | ||
− | A R G B | + | '''A <FONT Color=red>R</font> <FONT Color=green>G</font> <FONT Color=blue>B</font>''' |
e il valore del canale Alfa della piena opacità é uguale a zero, mentre il valore della piena trasparenza è 255 ! | e il valore del canale Alfa della piena opacità é uguale a zero, mentre il valore della piena trasparenza è 255 ! | ||
+ | * https://gambaswiki.org/wiki/comp/gb.qt4/color?l=it |
Versione attuale delle 16:49, 25 giu 2024
Per convertire il formato standard RGBA di un colore nei corrispondenti valori decimale ed esadecimale, come previsto in Gambas [nota 1], possiamo adottare il calcolo contenuto nel seguente codice:
Public Sub Main() Dim b, g, r, a As Byte Dim colore As Long ' Poniamo un valore per gli elementi dello standard RGBA: r = 100 g = 150 b = 0 a = 255 ' Nello standard RGBA il valore 255, assegnato al canale Alfa corrisponde alla piena opacità del colore, ' mentre il valore 0 corrisponde alla piena trasparenza ! ' Poiché in Gambas (contrariamente alo standard RGBA) il valore zero, assegnato al canale Alfa corrisponde alla piena opacità al colore, mentre il valore 255 corrisponde alla piena trasparenza, è necessaria la conversione del valore Alfa: a = 255 - a colore = CLong(b Or (g * CInt(2 ^ 8)) Or (r * CInt(2 ^ 16)) Or (a * CInt(2 ^ 24))) Print colore, Hex(colore, 8) End
Note
[1] ATTENZIONE ! In Gambas il colore di formato RGBA è così composto:
A R G B
e il valore del canale Alfa della piena opacità é uguale a zero, mentre il valore della piena trasparenza è 255 !