تكميم اللون إلى أقرب درجة في لوحة الألوان
يُقارَن #42A5F5 مع #000 و#369 و#ffffff و#3fa7f2 فيُطابَق مع #3fa7f2 في الموضع 3، بمسافة مربعة قدرها 22. أبقوا الألوان المختارة ضمن المجموعة التي تسمح بها علامتكم أو جهازكم أو صيغة ملفكم. مجانًا في متصفحكم.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- اللون
- #42A5F5
- لوحة الألوان
- #000, #369, #ffffff, #3fa7f2
- اللون
- #42a5f5
- اللون المكمَّم
- #3fa7f2
- فهرس اللوحة
- 3
- المسافة المربعة
- 22
يمكنكم تكميم لون وفق لوحة ثابتة عندما لا تقبل الصورة المفهرسة أو سمة الطرفية أو وحدة تحكم LED أو رموز التصميم أو صيغة التصدير المقيدة إلا ألوانًا معتمدة. أدخلوا لون المصدر بالصيغة السداسية ولوحة مرتبة. تتحقق الأداة من كل قيمة، وتقارن مسافات RGB الدقيقة، ثم تعيد أقرب لون بعد توحيد صيغته وفهرسه الذي يبدأ من الصفر ومربع المسافة. وعند تساوي المسافات تختار دائمًا العنصر الأسبق، لذلك تعطي عمليات التشغيل المتكررة النتيجة نفسها.
أعدوا لوحة ثابتة بترتيب مقصود
يبدأ تكميم اللون بالألوان التي تستطيع الوجهة تخزينها أو عرضها فعلًا. ضعوا هذه الألوان في مصفوفة اللوحة بترتيب ثابت ومقصود، وبصيغة #RGB أو #RRGGBB. توسع الأداة الصيغة المختصرة قبل المقارنة، ولا يؤثر اختلاف حالة الأحرف اللاتينية في النتيجة.
ويجب أن يتبع لون المصدر الصيغة نفسها. يمكن أن تضم اللوحة من عنصر واحد إلى 256 عنصرًا، وهو نطاق يلائم مجموعات ألوان العلامات التجارية الصغيرة وألوان الطرفيات وجداول الصور المفهرسة التقليدية وخيارات خيوط التطريز وكثيرًا من خرائط الألوان الخاصة بالأجهزة. لا يصبح ترتيب اللوحة مؤثرًا إلا إذا كان عنصران على المسافة نفسها من لون المصدر؛ وعندئذ يفوز العنصر الأسبق.
تجعل هذه القاعدة الصريحة حالات التعادل متوقعة، كما تتيح لكم التعبير عن الأفضلية من دون تغيير قيم الألوان. حافظوا على اللوحة نفسها في الدفعة كلها إذا كنتم تحتاجون إلى مخرجات مفهرسة متسقة. فإذا أعادت مهام مختلفة ترتيب اللوحة، فقد يتغير الفهرس المعاد حتى لو بقي اللون المختار نفسه.
يرفض التحقق المصفوفات الفارغة أو المتجاوزة للحد، وغياب علامة البداية، وقنوات ألفا، والأرقام غير الصالحة، والعناصر غير النصية بدلًا من تخمين المقصود.
حالات الاستخدام
إنشاء بيانات صورة مفهرسة
اربطوا وحدات البكسل المأخوذة بمواضع في جدول ألوان ثابت قبل كتابة التمثيل المفهرس.
فرض ألوان العلامة التجارية
طابقوا أي لون مختار مع أقرب عضو في لوحة معتمدة ضمن نظام التصميم.
دعم الأجهزة محدودة الألوان
اختاروا أقرب قيمة RGB مدعومة لمصابيح LED أو الشاشات أو الطرفيات أو غيرها من الأجهزة المقيدة.
الأسئلة الشائعة
ما صيغ الألوان المقبولة؟
يجب أن يستخدم لون المصدر وكل عنصر في اللوحة الصيغة السداسية #RGB أو #RRGGBB. وترفض قنوات ألفا والقيم التي لا تبدأ بالعلامة المطلوبة.
كيف يجري اختيار اللون الأقرب؟
تقلل الخوارزمية مجموع مربعات فروق قنوات الأحمر والأخضر والأزرق في فضاء RGB المرمز إلى أدنى قيمة.
ماذا يحدث إذا تساوت مسافة لونين؟
يفوز العنصر الذي يظهر أولًا في اللوحة، وبذلك تظل النتيجة حتمية.
هل يبدأ فهرس اللوحة من الصفر؟
نعم. يحمل العنصر الأول الفهرس 0، والثاني الفهرس 1، وهكذا.
هل تعتمد المطابقة على الإدراك البصري للون؟
لا. تستخدم الأداة المسافة الإقليدية المباشرة في RGB لإخراج مفهرس بسيط ودقيق وقابل للتكرار بدلًا من نموذج إدراكي.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/color/quantize-to-palette \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#42a5f5","palette":["#000000","#336699","#ffffff"]}'const res = await fetch("https://api.kit.forhosting.com/color/quantize-to-palette", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#42a5f5",
"palette": [
"#000000",
"#336699",
"#ffffff"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/quantize-to-palette",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#42a5f5",
"palette": [
"#000000",
"#336699",
"#ffffff"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/quantize-to-palette", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#42a5f5","palette":["#000000","#336699","#ffffff"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#42a5f5","palette":["#000000","#336699","#ffffff"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/quantize-to-palette", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"color": "#42a5f5",
"palette": [
"#000000",
"#336699",
"#ffffff"
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.quantize_to_palette",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_items | 256 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
افهموا طريقة حساب المسافة الحتمية
يوسع كل لون صالح إلى ست خانات سداسية، ثم يحوله إلى قيم لقنوات الأحمر والأخضر والأزرق تتراوح بين 0 و255. تطرح الخوارزمية قيمة كل قناة في عنصر اللوحة من القناة المناظرة في لون المصدر، ثم تربع الفروق الثلاثة وتجمعها. ويقع الاختيار على عنصر اللوحة صاحب المجموع الأصغر. لا تستبدل الخوارزمية المرشح الحالي إلا عندما تجد مسافة أصغر منه على نحو صارم، ولذلك لا يزيح التعادل عنصرًا أسبق. تمثل قيمة distance_squared المعادة هذا العدد الصحيح بدقة؛ فلا حاجة إلى استخراج الجذر التربيعي لأن ذلك لا يغير ترتيب المسافات غير السالبة. هذه هي المسافة الإقليدية المعتادة في فضاء RGB المرمز، وقد اختيرت لتوفير تحويل مفهرس واضح وقابل للتكرار، لا لمحاكاة الإدراك البصري البشري. الحساب سريع ولا يعتمد على البيئة، ويعطي الجواب نفسه في المتصفح وعبر API. تتضمن النتيجة أيضًا لون المصدر بعد توحيد صيغته وpalette_index الذي يبدأ من الصفر، كي تتمكنوا من كتابة الفهرس مباشرة مع الاحتفاظ بالقيمة السداسية المختارة في السجلات أو المعاينات أو عمليات التحقق اللاحقة.
استخدموا النتيجة بأمان في مسار مفهرس
تبدأ الفهارس من الصفر وفق العرف الشائع في المصفوفات ومعالجة الصور. احتفظوا باللوحة إلى جانب الفهارس المخزنة، لأن الفهرس يفقد معناه اللوني المستقل إذا أعيد ترتيب اللوحة أو استبدلت. يمكن لتطبيقكم وضع حد أقصى ملائم للمجال ورفض التحويلات البعيدة جدًا، مع أن هذه الأداة تعيد دائمًا أقرب عنصر صالح رياضيًا ولا تفرض عتبة جودة اعتباطية. لمعالجة ألوان متعددة، طبقوا العملية النقية نفسها على كل عنصر باستخدام اللوحة المرتبة نفسها. عند إجراء مطابقة واحدة، استخدموا quantized_color حيث تتوقع الوجهة القيمة السداسية المختارة. وللتخزين المفهرس، استخدموا palette_index بوصفه موضعًا ثابتًا داخل اللوحة نفسها التي أرسلتموها مع الطلب. تفيد distance_squared في ضوابط الجودة؛ فالقيمة صفر تعني أن لون المصدر كان موجودًا أصلًا في اللوحة، بينما تشير القيمة الأكبر إلى تغير أوسع في القنوات. لا تستخدم العملية شبكة أو اختيارًا عشوائيًا أو تاريخًا أو حالة خفية أو نموذجًا متكيفًا، لذلك تنتج المدخلات المتطابقة JSON متطابقًا.
أسئلة تقنية
ما تكلفة طلب API؟
تبلغ تكلفة كل طلب API مقدار $0.002. وينفذ إصدار المتصفح المنطق الحتمي نفسه محليًا.