Differenze tra le versioni di "Convertire il formato RGBA di un colore nei corrispondenti valori decimale ed esadecimale"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
Per convertire il formato RGBA di un colore, come previsto in Gambas <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>, nei corrispondenti valori decimale ed esadecimale, possiamo adottare il calcolo contenuto nel seguente codice:
+
Per convertire il formato standard RGBA di un colore nei corrispondenti valori decimale ed esadecimale, come previsto in Gambas <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>, possiamo adottare il calcolo contenuto nel seguente codice:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
    
 
    
Riga 6: Riga 6:
 
    
 
    
 
  <FONT Color=gray>' ''Il valore del colore di formato RGBA va considerato secondo Gambas come segue: <FONT Color=black>alfa</font>, <FONT Color=red>rosso</font>, <FONT Color=green>verde</font>, <FONT Color=blue>blu</font>.''</font>
 
  <FONT Color=gray>' ''Il valore del colore di formato RGBA va considerato secondo Gambas come segue: <FONT Color=black>alfa</font>, <FONT Color=red>rosso</font>, <FONT Color=green>verde</font>, <FONT Color=blue>blu</font>.''</font>
  a = 255
 
 
   <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> = 255
+
   <FONT Color=blue>b</font> = 0
 +
  a = 255   <FONT Color=gray>' ''Nello standard RGBA il valore 255, assegnato al canale Alfa corrisponde alla la piena opacità dell 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 dei valori:''</font>
 +
  Select Case a
 +
    Case 0
 +
      a = 255
 +
    Case 255
 +
      a = 0
 +
  End Select
 
          
 
          
 
   colore = CLong(b Or (g * CInt(2 ^ 8)) Or (r * CInt(2 ^ 16)) Or (a * CInt(2 ^ 24)))
 
   colore = CLong(b Or (g * CInt(2 ^ 8)) Or (r * CInt(2 ^ 16)) Or (a * CInt(2 ^ 24)))

Versione delle 10:52, 4 mag 2017

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
 
' Il valore del colore di formato RGBA va considerato secondo Gambas come segue: alfa, rosso, verde, blu.
  r = 100
  g = 150
  b = 0
  a = 255   ' Nello standard RGBA il valore 255, assegnato al canale Alfa corrisponde alla la piena opacità dell colore, mentre il valore 0 corrisponde alla piena trasparenza !
' 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 dei valori:
  Select Case a
    Case 0
      a = 255
    Case 255
      a = 0
  End Select
        
  colore = CLong(b Or (g * CInt(2 ^ 8)) Or (r * CInt(2 ^ 16)) Or (a * CInt(2 ^ 24)))
  
  Print Val("&" & Hex(colore, 8) & "&"), 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 !