RGB'den HSL'ye Dönüştürücü nedir?
Bu araç, RGB modelinde (Kırmızı, Yeşil, Mavi; her biri 0–255) tanımlanan bir rengi HSL modeline (Ton, Doygunluk, Parlaklık) çevirir. HSL, tasarımcılar için çoğu zaman daha sezgiseldir; çünkü rengin tonunu (hue), ne kadar canlı olduğunu (doygunluk) ve ne kadar açık ya da koyu olduğunu (parlaklık) birbirinden ayırır. Bu dönüşüm evrenseldir; herhangi bir cihaza veya ülkeye bağlı değildir.
Nasıl kullanılır?
Renginizin kırmızı, yeşil ve mavi değerlerini her biri 0 ile 255 arasında olacak şekilde girin. Hesapla'ya basın ve eşdeğer HSL üçlüsünü alın; doğrudan CSS'e hsl(H, S%, L%) olarak yapıştırmaya hazırdır.
Formülün açıklaması
Önce her kanalı 255'e bölerek 0–1 aralığına normalleştirin. Bu üç değerin en büyüğüne max, en küçüğüne min diyelim ve \(\Delta = \text{max} - \text{min}\) olsun. Parlaklık \(L = (\text{max} + \text{min}) / 2\)'dir. Doygunluk \(S = \Delta / (1 - \lvert 2L - 1 \rvert)\) şeklinde hesaplanır; \(\Delta = 0\) olduğunda (yani gri tonlarda) ise 0'dır. Ton, hangi kanalın en büyük olduğuna göre türetilir, 60° ile çarpılır ve ardından 0–360° aralığına sığacak şekilde döndürülür.
$$L = \frac{C_{\max} + C_{\min}}{2}, \quad S = \frac{C_{\max} - C_{\min}}{1 - \lvert 2L - 1 \rvert}$$$$\text{where}\quad \left\{ \begin{aligned} R^{\prime} &= \frac{\text{Red}}{255}, \;\; G^{\prime} = \frac{\text{Green}}{255}, \;\; B^{\prime} = \frac{\text{Blue}}{255} \\ C_{\max} &= \max(R^{\prime}, G^{\prime}, B^{\prime}), \;\; C_{\min} = \min(R^{\prime}, G^{\prime}, B^{\prime}) \end{aligned} \right.$$$$H = 60^{\circ} \times \begin{cases} \dfrac{G^{\prime} - B^{\prime}}{\Delta} \bmod 6 & C_{\max} = R^{\prime} \\[0.6em] \dfrac{B^{\prime} - R^{\prime}}{\Delta} + 2 & C_{\max} = G^{\prime} \\[0.6em] \dfrac{R^{\prime} - G^{\prime}}{\Delta} + 4 & C_{\max} = B^{\prime} \end{cases}$$
Örnek hesaplama
Domates kırmızısı RGB(255, 99, 71) değerini ele alalım. Normalleştirilmiş hali: \(R=1\), \(G=0.388\), \(B=0.278\). \(\text{max}=1\), \(\text{min}=0.278\), \(\Delta=0.722\).
$$L = \frac{1 + 0.278}{2} = 0.639 \to \%63{,}9$$$$S = \frac{0.722}{1 - \lvert 2 \cdot 0.639 - 1 \rvert} = \frac{0.722}{0.722} = 1 \to \%100$$max = R olduğu için
$$H = 60 \times \left(\frac{0.388 - 0.278}{0.722}\right) = 60 \times 0.1525 \approx 9{,}13^{\circ}$$Sonuç: hsl(9.13, 100%, 63.92%).
Sık Sorulan Sorular
Gri tonlarda doygunluk neden 0? Üç kanal da eşit olduğunda \(\Delta = 0\) olur, dolayısıyla renk bilgisi kalmaz ve doygunluk tanımsızdır — alışılagelmiş şekilde 0 kabul edilir.
H, S ve L yuvarlanıyor mu? Ekranda iki ondalık basamağa yuvarlanır, ancak ham hesaplanan değerler tam hassasiyetini korur.
Geri dönüştürebilir miyim? Evet — HSL'den RGB'ye dönüşüm, ton sektörünü ve kromayı kullanan ters işlemdir.