السلام عليكم ورحمة الله وبركاته
سألني أحد الأخوان قبل فترة بخصوص العلاقة مابين تمثيل الألوان بصيغة Hex وتمثيلها كـ RGB
طبعاً RGB تعني RED-GREEN-BLUE بحيث كل خانة تمثل تركيز اللون بحيث تستطيع تشكيل أكثر من 16 مليون لون مختلف. كل لون يحتمل من 0 إلى 255 من أدنى نسبة تركيز إلى أعلى نسبة تركيز.
255*255*255 = 16,581,375 لون مختلف.
طبعاً في الكمبيوتر فيه عدة أنظمة لتمثيل الألوان يهمنا منها تمثيلها RGB بالنظام العشري المعروف (من 0 إلى 255) أو بالنظام الست عشري المعروف بالـ Hex.
تمثيل الألوان كان مفيد بالهيكس لأنه ممكن يشيل خانتين عشرية في خانة ست عشرية واحدة.
يعني من عشري إلى عشري:
1 = 1
2 = 2
..
10 = 10
ومن عشري إلى ست عشري
1 = 1
2 = 2
..
10 = A
11 = B
12= C
13 = D
14 = E
15 = F
فنحوّل من النظام العشري إلى النظام الست عشري للاختصار خصوصاً في HTML
كيف يتم التحويل بين النظامين ؟
فرضاً اللون الأبيض يمثل في نظام RGB عشري بـ (255,255,255) , ويمثل في نظام Hex ب (FFFFFF) وهذي ثابتة ومعروفة وتمر على أي شخص له خبرة بسيطة في تطوير المواقع.
في الحقيقة أن FFFFFF تمثل بشكل دقيق كـ (FF,FF,FF) حيث تساوي FF رقم 255
كيفية التحويل من النظامين:
التحويل من Hex إلى RGB Decimals بسيط. تضرب الرقم أو الرقم المماثل للرمز بـ 16 مرفوعاً للخانة.
حيث
123456789
9 في الخانة 0 , 9 في الخانة 1 ... 9 في الخانة 1
مثلاً: (AA,AC,99)
99 : 9 مضروبة في 16 مرفوعة للخانة 0 + 9 مضروبة في 16 مرفوعة للخانة 1
9*16^0 + 9*16^1 = 153
AC : التمثيل الرقمي للحروف من A-F موضح بالأعلى, C تساوي 12 و A تساوي 10
12 * 16^0 + 10 * 16^1 = 172
AA : تساوي 10 * 16^0 + 10 * 16^1 = 170
= (170,172,153) RGB
أما بالنسبة للتحويل من الهيكس إلى RGB Decimals
نستمر بقسمة الرقم كامل على 16 ونستخدم البواقي من الأسفل إلى الأعلى
مثلاً
172 نحولها إلى هيكس
172÷16= 10 والباقي 12
10÷16 = 0 والباقي 10
12= C
10= A
إذا نستطيع تمثيل 172 بالهيكس ب AC ...
ونفس الطريقة تستخدم لخانة G و B
أتمنى الأستفادة للجميع
واعتذر على الأطالة
عبدالرحمن العنكبوتي