ما هو محوّل ألوان Hex إلى HSL؟
تحوّل هذه الأداة كود اللون السداسي العشري (صيغة #RRGGBB المألوفة المستخدمة في CSS وبرامج التصميم) إلى نموذج الألوان HSL — أي درجة اللون (Hue) والتشبّع (Saturation) والإضاءة (Lightness). غالباً ما يكون نظام HSL أكثر بداهةً من Hex أو RGB لأنه يصف اللون بالطريقة التي يفكّر بها الإنسان فعلاً: ما هو اللون (درجة اللون)، ومدى حيويّته (التشبّع)، ودرجة فتوحته أو قتامته (الإضاءة). تعمل الأداة بشكل عالمي مع أي لون قائم على RGB، وهي ليست مرتبطة بأي بلد أو معيار بعيداً عن صيغة Hex القياسية في فضاء الألوان sRGB.
كيفية الاستخدام
أدخل قيمة لون سداسية عشرية مثل #3498DB. يمكنك كتابة الرمز # في البداية أو حذفه، كما تُوسَّع الصيغة المختصرة المكوّنة من ثلاث خانات مثل #0AF تلقائياً إلى #00AAFF. يُرجِع المحوّل قيمة HSL المكافئة بالإضافة إلى قيم قنوات الأحمر والأخضر والأزرق المفكوكة (من 0 إلى 255).
شرح المعادلة
أولاً تُقسَّم القيمة السداسية العشرية إلى بايتات الأحمر والأخضر والأزرق، ويُقسَم كلٌّ منها على 255 لتطبيعه ضمن المجال من 0 إلى 1. لِنفترض أن max وmin هما أكبر وأصغر هذه القيم الثلاث. الإضاءة هي ببساطة متوسّطهما: $$L = \frac{\max + \min}{2}$$ ويكون التشبّع صفراً عندما تتساوى max مع min (أي اللون الرمادي). وفي غير ذلك، إذا كانت \(L > 0.5\) فإن \(S = \frac{\max - \min}{2 - \max - \min}\)، وإلا فإن \(S = \frac{\max - \min}{\max + \min}\). أما درجة اللون فتعتمد على أي قناة هي القيمة العظمى، وتُحوَّل إلى درجات بضربها في 60.
مثال محلول
لِنأخذ #3498DB: R = 52، G = 152، B = 219. بعد التطبيع: \(r \approx 0.2039\)، \(g \approx 0.5961\)، \(b \approx 0.8588\). وبذلك \(\max = b = 0.8588\) و\(\min = r = 0.2039\)، فتكون \(L = 0.5314\) (53.14%). وبما أن \(L > 0.5\)، فإن $$S = \frac{0.6549}{2 - 1.0627} = 0.6987 \ (69.87\%)$$ والأزرق هو القيمة العظمى، لذا $$H = 60 \times \left(4 + \frac{0.2039 - 0.5961}{0.6549}\right) = 60 \times 3.4011 \approx 204.07^{\circ}$$ النتيجة: hsl(204, 70%, 53%).
الأسئلة الشائعة
هل تقبل الأداة الصيغة المختصرة؟ نعم — تُوسَّع الأكواد المكوّنة من ثلاث خانات مثل #F0C تلقائياً.
هل قيم HSL دقيقة؟ تُحسَب درجة اللون والتشبّع والإضاءة بدقّة كاملة، ولا يجري تقريبها إلا لأغراض العرض؛ كما تتوفّر القيم الأصلية غير المقرّبة أيضاً.
هل رمز # ضروري؟ لا، يتعامل المحوّل مع القيم سواء أكان الرمز # في بدايتها أم لا.