Conversione da HSL a RGB (Microsoft Excel)
Bassel necessita di una formula in grado di convertire i valori di colore HSL (valori di tonalità, saturazione e luminosità) in valori di colore RGB (valori di rosso, blu e verde). Si chiede se qualcuno possa indicarlo a una formula del foglio di lavoro che lo farà o un modo per farlo in una macro.
La conversione da valori HSL a RGB non è un’impresa particolarmente banale. Per chi è interessato alla matematica dietro di esso, è possibile check out the Wikipedia article on the topic.
Se è necessario eseguire la conversione di rado, il modo più semplice è seguire questi passaggi:
-
Visualizza la scheda Home della barra multifunzione.
-
Fare clic sulla freccia in basso sul lato destro dello strumento Colore riempimento, nel gruppo Carattere. Excel visualizza una piccola tavolozza di colori e alcune altre opzioni.
-
Scegli più colori. Excel visualizza la finestra di dialogo Colori.
-
Assicurati che sia visualizzata la scheda Personalizza.
-
Utilizzando l’elenco a discesa Modello di colore, scegliere HSL. (Vedi figura 1.)
-
Nella parte inferiore della finestra di dialogo puoi vedere i singoli valori per Hue, Sat e Lum. Cambia questi valori in quello che vuoi.
-
Utilizzando l’elenco a discesa Modello di colore, scegli RGB. I valori visualizzati nella parte inferiore della finestra di dialogo sono i valori HSL (immessi al passaggio 6)
convertito in RGB.
-
Al termine, fai clic su Annulla.
Questo approccio presuppone che ciascuno dei tuoi valori HSL possa essere espresso nell’intervallo da 0 a 255. Se, tuttavia, i tuoi valori HSL sono un angolo (per la tonalità) o una percentuale (per la saturazione e la luminanza), allora avrai bisogno per convertirli manualmente prima di inserirli al punto 6. È possibile convertire un valore di angolo moltiplicando l’angolo per 255 e quindi dividendolo per 360.
Le percentuali possono essere convertite moltiplicandole per 2,55.
Se hai bisogno di ottenere i valori più spesso, allora la creazione della tua funzione definita dall’utente per eseguire la conversione sarà d’aiuto. L’esempio seguente accetta tre parametri (tonalità, saturazione e luminanza) e restituisce una stringa contenente i valori RGB decimali separati da virgole.
Function HSLtoRGB(Hue As Integer, Saturation As Integer, _ Luminance As Integer) As String Dim r As Integer Dim g As Integer Dim b As Integer Dim C As Double Dim X As Double Dim m As Double Dim rfrac As Double Dim gfrac As Double Dim bfrac As Double Dim hangle As Double Dim hfrac As Double Dim sfrac As Double Dim lfrac As Double If (Saturation = 0) Then r = 255 g = 255 b = 255 Else lfrac = Luminance / 255 hangle = Hue / 255 360 sfrac = Saturation / 255 C = (1 - Abs(2 lfrac - 1)) sfrac hfrac = hangle / 60 hfrac = hfrac - Int(hfrac / 2) 2 'fmod calc X = (1 - Abs(hfrac - 1)) C m = lfrac - C / 2 Select Case hangle Case Is < 60 rfrac = C gfrac = X bfrac = 0 Case Is < 120 rfrac = X gfrac = C bfrac = 0 Case Is < 180 rfrac = 0 gfrac = C bfrac = X Case Is < 240 rfrac = 0 gfrac = X bfrac = C Case Is < 300 rfrac = X gfrac = 0 bfrac = C Case Else rfrac = C gfrac = 0 bfrac = X End Select r = Round((rfrac + m) 255) g = Round((gfrac + m) * 255) b = Round((bfrac + m) * 255) End If HSLtoRGB = Str(r) & "," & Str(g) & "," & Str(b) End Function
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (13535) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.