Nella serie Algoritmi e formule
Da RGB a HSB (detto anche HSV)
HSB (detta anche HSV) è una modalità di colore device-dependent derivata dalla modalità RGB con un cambiamento di coordinate. Adobe Photoshop usa la modalità HSB nel Color Picker mentre nei comandi e correzioni usa un’altra modalità che si chiama HSL.
HSB significa hue, saturation, brightness, HSV significa hue, saturation, value.
L’algoritmo di trasformazione da RGB a HSB utilizzato da Photoshop è lo storico algoritmo di Alvy Ray Smith utilizzato anche da PostScript, e pubblicato nel 1978 con il titolo “Color Gamut Transform Pairs“.
I valori di ingresso sono R, G e B compresi tra 0 e 255. I valori di uscita sono H, S e B. Il valore di H (hue, tinta) va da 0° a 360°, S e B (o V) assumono valori compresi tra 0 e 100.
// normalizzazione
var_R = R / 255
var_G = G / 255
var_B = B / 255
// calcolo massimo, minimo e delta
var_Min = min( var_R, var_G, var_B )
var_Max = max( var_R, var_G, var_B )
del_Max = var_Max – var_Min
// calcolo B
B = var_Max * 100
if ( del_Max == 0 )
// si tratta di un grigio
{
H = 0
S = 0
}
else
// non è un grigio, calcolo H e S
{
S = del_Max / var_Max * 100
del_R = ( ( ( var_Max - var_R ) / 6 ) + ( del_Max / 2 ) ) / del_Max
del_G = ( ( ( var_Max - var_G ) / 6 ) + ( del_Max / 2 ) ) / del_Max
del_B = ( ( ( var_Max - var_B ) / 6 ) + ( del_Max / 2 ) ) / del_Max
if ( var_R == var_Max ) H = del_B - del_G
else if ( var_G == var_Max ) H = ( 1 / 3 ) + del_R - del_B
else if ( var_B == var_Max ) H = ( 2 / 3 ) + del_G - del_R
if ( H < 0 ) ; H += 1
if ( H > 1 ) ; H -= 1
H = H*360
}
Torna all'indice di Algoritmi e formule
Vuoi fare un commento a questo post?
Devi essere collegato per scrivere un commento.

