حاسبة السطوع النسبي
قِس مقدار الضوء الذي يعطيه اللون وفق معادلة WCAG: الرمادي المتوسط #808080 يعطي 0.215860500114 على مقياس يبدأ من 0 للأسود وينتهي عند 1 للأبيض. تظهر قنوات RGB وقيمها الخطية لتتمكن من التحقق من الرقم. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- اللون
- #808080
- اللمعان النسبي
- 0.2158605001
تحوّل حاسبة السطوع النسبي لون sRGB السداسي إلى مقياس الضوء المستخدم في حسابات تباين WCAG. توسّع الصيغة السداسية المختصرة عند الحاجة، وتتحقق من كل خانة، وتطبّع قنوات الأحمر والأخضر والأزرق، ثم تزيل جاما sRGB بالصيغة القياسية المجزأة وتجمع القيم الخطية وفق المعاملات الرسمية. تتراوح النتيجة من 0 للأسود إلى 1 للأبيض. وتتضمن الاستجابة أيضًا اللون السداسي المطبّع وقنوات RGB الصحيحة والقنوات الخطية الثلاث، كي تتمكنوا من رؤية كل مرحلة وإعادة إنتاجها.
أدخلوا لون sRGB دقيقًا
قدّموا لونًا من ثلاث أو ست خانات سداسية، مع علامة الرقم في البداية أو من دونها. فعلى سبيل المثال، تُوسّع #09C إلى #0099CC قبل الحساب، بينما تُقبل 4A90D9 وتُطبّع إلى #4A90D9. تقبل الحاسبة عمدًا صيغ sRGB السداسية الواضحة هذه فقط.
وهي لا تخمّن أسماء الألوان، ولا تحلل دوال CSS، ولا تحذف قناة ألفا، ولا تقيد قيم القنوات غير الصحيحة بصمت. يجعل هذا الحد الصارم التحقق مفيدًا في أنظمة التصميم المؤتمتة وفحوص إمكانية الوصول ونصوص البناء وبيانات الاختبار؛ فالبيانات الخاطئة تنتج خطأ إدخال بدلًا من رقم يبدو معقولًا لكنه غير صحيح. لا تؤثر حالة الأحرف في الحساب، وتُزال المسافات المحيطة، لكن المسافات الداخلية والخانات الزائدة وعلامات الترقيم غير المدعومة والقيم الفارغة تُرفض.
يحتوي كائن RGB الناتج على قنوات صحيحة من 0 إلى 255، مما يتيح لكم التأكد سريعًا من كيفية تفسير النص الأصلي. ويفيد هذا التطبيع خصوصًا عند الجمع بين الصيغ المختصرة والكاملة مع الحاجة إلى تمثيل موحد للسجلات أو اللقطات أو الحسابات اللاحقة.
افهموا طريقة حساب WCAG
السطوع النسبي ليس متوسطًا بسيطًا للأحمر والأخضر والأزرق، وليس مكوّن الإضاءة في HSL. تُقسم أولًا كل قناة sRGB ذات 8 بت على 255. إذا كانت القناة المطبّعة تساوي 0.04045 أو تقل عنه، فتُقسم على 12.92؛ أما القناة الأعلى فتُحوّل برفع ((القناة + 0.055) / 1.055) إلى الأس 2.4.
تزيل هذه العملية منحنى نقل sRGB وتنتج قيم قنوات ضوئية خطية. ثم تطبق الحاسبة المعاملات القياسية: 0.2126 للأحمر و0.7152 للأخضر و0.0722 للأزرق. ينال الأخضر الوزن الأكبر لأن البصر البشري أكثر حساسية له، بينما ينال الأزرق الوزن الأقل.
يمثل المجموع الموزون السطوع النسبي المعروض، ضمن الحدين 0 للأسود و1 للأبيض. ولأن جميع العمليات والمعاملات ثابتة، فإن الإدخال الصحيح نفسه يعطي دائمًا النتيجة نفسها من دون شبكة أو حالة مخزنة أو استدلال بنموذج.
استخدموا السطوع في مسارات إمكانية الوصول
تصف قيمة سطوع نسبي واحدة لونًا واحدًا فقط، ولا تثبت وحدها أن النص يحقق إمكانية الوصول. لتقييم التباين، احسبوا سطوع لون المقدمة والخلفية، وحددوا القيمة الأفتح L1 والأغمق L2، ثم استخدموا (L1 + 0.05) / (L2 + 0.05). قارنوا النسبة بحد WCAG الملائم للمحتوى وحجم النص ومستوى المطابقة المستهدف.
يفيد فصل السطوع كقدرة مستقلة عندما يملك مسار المعالجة سياسة تباين خاصة، أو يحتاج إلى تخزين القياسات المطبّعة، أو يرغب في فحص القيم الوسيطة أثناء تصحيح الأخطاء. كما يدعم تحليل لوحات الألوان وتوليد الرموز واختبارات الانحدار والشروح التعليمية لسبب اختلاف السطوع المدرك بين لونين ذوي خانات سداسية متشابهة. تذكروا أن الحساب يفترض ألوان sRGB معتمة.
إذا كان التصميم يستخدم الشفافية، فركّبوا اللون على خلفيته الفعلية أولًا؛ إذ تُرفض القيمة السداسية ذات ألفا لأن السطوع لا يكون محددًا من دون تلك الخلفية.
حالات الاستخدام
فحص رموز التصميم
احسبوا السطوع النسبي لكل رمز لون sRGB معتم واحفظوه قبل تطبيق سياسة التباين الخاصة بالمشروع.
تصحيح حسابات التباين
راجعوا قنوات RGB المطبّعة وقنوات الضوء الخطية لتحديد أخطاء التفسير أو تصحيح جاما في تطبيق آخر.
إنشاء اختبارات إمكانية الوصول
ولّدوا قيم سطوع حتمية لألوان المقدمة والخلفية المستخدمة في تأكيدات تباين WCAG المؤتمتة.
الأسئلة الشائعة
ما نطاق السطوع النسبي؟
تتراوح النتيجة من 0 لأسود sRGB إلى 1 لأبيض sRGB، مع شمول الطرفين.
ما صيغ الألوان المقبولة؟
تُقبل ألوان sRGB السداسية ذات ثلاث أو ست خانات، مع # في البداية أو من دونها. وتُرفض الأسماء ودوال RGB وقيم ألفا.
هل السطوع النسبي هو إضاءة HSL نفسها؟
لا. يحوّل سطوع WCAG قنوات sRGB إلى قيم خطية ويطبق معاملات موزونة، بينما تعتمد إضاءة HSL تعريفًا هندسيًا مختلفًا.
هل تثبت هذه القيمة وحدها مطابقة WCAG؟
لا. تتطلب المطابقة نسبة تباين بين لونين والحد المناسب للمحتوى والمستوى المستهدف.
لماذا يقع الرمادي المتوسط #808080 أدنى من النصف بكثير؟
لأن منحنى جاما الخاص بـ sRGB يُزال أولًا. تصبح كل قناة قيمتها 128 مساوية 0.215860500114 في الضوء الخطي، ولأن الأحمر والأخضر والأزرق متساوية فهذه هي قيمة السطوع النسبي أيضًا.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/color/relative-luminance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#4A90D9"}'const res = await fetch("https://api.kit.forhosting.com/color/relative-luminance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#4A90D9"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/relative-luminance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#4A90D9"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/relative-luminance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#4A90D9"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#4A90D9"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/relative-luminance", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"color": "#4A90D9"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.relative_luminance",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
افهموا طريقة حساب WCAG
تُقرّب القنوات الخطية والقيمة النهائية إلى اثنتي عشرة منزلة عشرية لتقديم JSON مستقر من دون تغيير نتيجة إمكانية الوصول العملية.
استخدموا السطوع في مسارات إمكانية الوصول
تبلغ كلفة API مقدار $0.002 لكل عنصر، بينما يستخدم التنفيذ في المتصفح الحساب الحتمي نفسه لإجراء فحوص فورية.
أسئلة تقنية
ما كلفة API؟
تبلغ كلفة كل عنصر $0.002. ويمكنكم أيضًا إجراء الحساب مجانًا في المتصفح.