تقييد اللون ضمن النطاق
أعد قيم RGB الخارجة عن النطاق إلى مقياس 0 إلى 255: الأحمر 300 والأخضر −20 والأزرق 127.5 تصبح 255 و0 و127.5، وترى أي القنوات تغيرت. لا يُقرَّب أي شيء أثناء ذلك. مجاناً في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- المقاومة (Ω)
- 300
- G
- -20
- B
- 127.5
- المقاومة (Ω)
- 255
- G
- 0
- Rgb
- rgb(255, 0, 127.5)
- القنوات المعدلة
- r, g
يمكنكم تقييد اللون ضمن المجال عندما تتضمن بيانات RGB قنوات أقل من الصفر أو أعلى من 255. تتحقق هذه الأداة الحتمية من الأحمر والأخضر والأزرق، ثم تصحح كل قناة بصورة مستقلة إلى أقرب حد في نطاق الثماني بتات القياسي. تبقى القيم الواقعة أصلًا داخل النطاق كما هي، بما فيها القيم الكسرية، لأن التقييد يضبط الحدود ولا يقرّب الدقة. تعرض الاستجابة القنوات المصححة، وسلسلة RGB جاهزة للقراءة، وما إذا حدث تغيير، والقنوات التي أُصلحت بالتحديد.
معنى تقييد لون RGB ضمن المجال
يعبّر لون RGB بثماني بتات عادةً عن الأحمر والأخضر والأزرق بمقياس شامل من 0 إلى 255. لا يمكن تمثيل البيانات الواقعة خارج هذين الحدين مباشرةً في هذا النطاق؛ فقناة حمراء قيمتها 300 أعلى من اللازم، وقناة خضراء قيمتها -20 أدنى من اللازم. يحل التقييد هذه المشكلة المحددة بتحويل كل قيمة دون 0 إلى 0، وكل قيمة فوق 255 إلى 255، وترك كل قيمة بينهما دون تغيير.
تُعالج كل قناة بصورة مستقلة، ولذلك لا يغيّر تصحيح الأحمر الأخضر أو الأزرق. تعيد الأداة القيم المقيدة r وg وb، إضافةً إلى سلسلة دالة rgb تعرض النتيجة نفسها. يختلف هذا الإجراء المحدد عن تحويل الألوان أو الضغط الإدراكي أو تخطيط المجالات بين فضاءات الألوان.
فهو لا يحول HSL أو Lab أو Display P3 أو CMYK، ولا يحاول الحفاظ على الصبغة المرئية بعد تحويل فضاء لوني. تتمثل مهمته العملية في التحقق من ثلاث قنوات رقمية ووضعها بشفافية وقابلية للتكرار داخل المجال المسموح من 0 إلى 255.
التحقق والقنوات الكسرية والنتائج الحتمية
القنوات الثلاث مطلوبة ويجب أن تكون أعدادًا منتهية. وتُقبل الصيغة العلمية عندما تنتج عددًا منتهيًا. بعد التحقق، تطبق الخوارزمية الحد الأدنى بين 255 والحد الأقصى بين 0 وقيمة القناة.
لا تحتوي هذه الصيغة على عتبة مخفية أو قاعدة محلية أو فرع يعتمد على المنصة. تُحفظ القيم الكسرية الموجودة داخل النطاق؛ فتبقى 127.5 مساويةً لـ 127.5. وهذا مقصود لأن التقييد والتقريب عمليتان مختلفتان.
لا يستخدم التنفيذ الشبكة أو التاريخ الحالي أو العشوائية أو الحالة المشتركة أو نموذجًا خارجيًا، ولذلك ينتج الإدخال الصحيح نفسه دائمًا البيانات المتسلسلة نفسها.
موضع تقييد RGB في مسار العمل
تنتقل قيم الألوان كثيرًا بين أنظمة لها افتراضات مختلفة. فقد تتجاوز عملية حساب في مظلل الحد بعد إضافة الضوء، وقد يحتوي تصدير تحليل صورة على مكوّن سالب صغير، وقد تنتج صيغة في جدول بيانات 255.2، أو يتخطى استيفاء حركة وجهته للحظة. يفيد التقييد عند الحد الذي يجب فيه تحويل هذه القيم إلى قنوات RGB عادية للوحة رسم أو مولد CSS أو صور مصغرة أو بروتوكول جهاز أو رموز تصميم.
ضعوه بعد العملية الحسابية التي قد تتجاوز المجال وقبل المستهلك الذي يتطلب قنوات محدودة. يمكن لحقول التغيير تغذية السجلات ومقاييس الجودة؛ إذ يمكنكم قبول اللون المصحح لتحقيق المتانة مع تسجيل حاجة بيانات المصدر إلى الإصلاح. لا تستخدموا التقييد لإخفاء مدخلات معطوبة بصورة منهجية، ولا بديلًا عن تخطيط إدراكي لفضاءات الألوان واسعة المجال؛ فتلك المهام تحتاج إلى خوارزميات أخرى.
وبما أن المسارين يشتركان في المحلل الحتمي نفسه، يمكن تحويل عينة فُحصت يدويًا إلى حالة اختبار إنتاجية من دون تغيير قاعدة التصحيح.
حالات الاستخدام
تثبيت مسارات التصيير
صححوا نتائج العمليات الحسابية قبل تمريرها إلى لوحة رسم أو مولد CSS أو مصيّر صور.
إنشاء حالات اختبار حتمية
اختبروا سلوك الحدود وتتبعوا بدقة قنوات RGB التي اضطر مسار المعالجة إلى تصحيحها.
الأسئلة الشائعة
ماذا يحدث لقناة تقل عن الصفر؟
تصبح 0. تُقيّم القنوات الأخرى بصورة مستقلة وتبقى بلا تغيير إذا كانت ضمن النطاق.
ماذا يحدث لقناة تتجاوز 255؟
تصبح 255، وهو الحد الأعلى لنطاق قناة RGB المدعوم.
هل تُقرّب قيم RGB الكسرية؟
لا. تُحفظ القيم المنتهية من 0 إلى 255 لأن هذه القدرة تقيّد الحدود ولا تقرّب الدقة.
ما القيم التي تُرفض بدلاً من تقييدها؟
تُرفض القنوات الناقصة والكلمات والخانات الفارغة وكل ما ليس عدداً منتهياً. وتُقبل الأعداد المكتوبة كنص والصيغة العلمية إذا كانت تمثل عدداً حقيقياً.
كيف أعرف أي القنوات صُحّحت؟
تبيّن النتيجة هل تغير شيء، وتسرد القنوات المعدّلة بالترتيب. مع الأحمر 300 والأخضر −20 والأزرق 127.5 يظهر الأحمر والأخضر فقط، لأن الأزرق كان داخل النطاق أصلاً.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/color/clamp-gamut \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"r":300,"g":-20,"b":127.5}'const res = await fetch("https://api.kit.forhosting.com/color/clamp-gamut", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"r": 300,
"g": -20,
"b": 127.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/clamp-gamut",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"r": 300,
"g": -20,
"b": 127.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/clamp-gamut", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"r":300,"g":-20,"b":127.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"r":300,"g":-20,"b":127.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/clamp-gamut", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"r": 300,
"g": -20,
"b": 127.5
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.clamp_gamut",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
يمكنكم استخدام أداة المتصفح للتصحيح السريع أو API بسعر $0.002 لكل طلب ضمن مسارات معالجة الألوان وعمليات الاستيراد والاختبارات وأتمتة أنظمة التصميم.
معنى تقييد لون RGB ضمن المجال
كما تعيد القيمة المنطقية changed والقائمة المرتبة channels_changed، لكي تتمكنوا من التمييز بين الإدخال السليم والإدخال الذي أُصلح من دون مقارنة القيم بأنفسكم.
التحقق والقنوات الكسرية والنتائج الحتمية
الحقول المفضلة هي r وg وb، كما تُقبل الأسماء البديلة الوصفية red وgreen وblue. تُقبل السلاسل الرقمية الصارمة الواردة من النماذج أو سجلات CSV أو معاملات الاستعلام، بينما تُرفض السلاسل الفارغة والكلمات والقيم المنطقية والمصفوفات والكائنات وInfinity وNaN بخطأ invalid_input. يتحول الصفر السالب إلى صفر، مما يتجنب تمثيل إشارة غير ضرورية في JSON. تصبح changed صحيحة فقط إذا تجاوزت قيمة واحدة على الأقل أحد الحدين، في حين تسرد channels_changed الأسماء المختصرة المتأثرة بالترتيب الثابت للأحمر ثم الأخضر ثم الأزرق.
موضع تقييد RGB في مسار العمل
في الاختبارات، تحققوا من القنوات ومن channels_changed معًا كي لا تؤدي التعديلات المستقبلية إلى الالتفاف أو التقريب أو رفض اللون كاملًا. ينفذ المتصفح التطبيق النقي نفسه، وفي الأتمتة يكلف كل طلب API ناجح $0.002.
حالات التكامل
إصلاح سجلات RGB المستوردة
قيّدوا قنوات جداول البيانات أو CSV أو API قبل حفظها بصفتها بيانات RGB قياسية.
أسئلة تقنية
ما تكلفة طلب API؟
يكلف طلب API الناجح $0.002. ويمكنكم أيضًا تشغيل العملية الحتمية نفسها في المتصفح.
ما المدخلات التي تُرفض؟
ينتج invalid_input عن القنوات المفقودة أو الفارغة أو غير الرقمية أو غير المنتهية. قنوات RGB الثلاث مطلوبة.