تحويل YIQ إلى RGB
تحوّل هذه الأداة من YIQ إلى RGB النصوع ومكوّني اللون في نموذج NTSC إلى قيم عملية للأحمر والأخضر والأزرق.
شغّل الأداة مجانًا
وهي تطبق مصفوفة عكسية ثابتة، وتعرض القنوات المعيارية وقنوات 8 بت، وتبيّن متى لزم قص قناة إلى مجال RGB القابل للعرض. يتحقق الفحص الصارم قبل الحساب من القيم المفقودة وغير الرقمية واللانهائية والخارجة عن المجال. لا تستخدم الأداة الشبكة، ولذلك تعطي دائمًا النتيجة نفسها عند إدخال المكوّنات Y وI وQ نفسها.
أدخل مكوّنات YIQ المعيارية بصورة صحيحة
قدّم ثلاثة مكوّنات رقمية: Y للنصوع، وI لمكوّن اللون المتوافق في الطور، وQ لمكوّن اللون المتعامد. يجب أن تكون Y بين 0 و1، وأن تكون I بين -0.5957 و0.5957، وأن تكون Q بين -0.5226 و0.5226. هذه حدود معيارية لنموذج YIQ في NTSC، وليست قيم بايت ولا نسبًا مئوية. تمثل قيمة Y القريبة من الصفر نصوعًا منخفضًا، وتمثل القيمة القريبة من الواحد نصوعًا مرتفعًا. ويحمل المكوّنان I وQ ذوا الإشارة معلومات اللون حول ذلك النصوع. أرسل أرقام JSON فعلية، لا سلاسل نصية تبدو كأرقام، كي يبقى العقد واضحًا في API وحزم SDK ونموذج المتصفح. ترفض الأداة القيم المفقودة والسلاسل والقيم الشبيهة بـNaN والقيم اللانهائية والأرقام الواقعة خارج الحدود المعلنة. يمنع هذا التشدد خطأ الكتابة أو المقياس من إنتاج لون يبدو معقولًا وهو غير صحيح. تقبل عمليات التكامل الأسماء البديلة luminance وin_phase وquadrature، لكن الحقول القياسية هي y وi وq.
افهم المصفوفة العكسية والقص في NTSC
يستخدم الحساب التحويل الثابت R = Y + 0.956I + 0.621Q وG = Y - 0.272I - 0.647Q وB = Y - 1.106I + 1.703Q. تنتج كل معادلة أولًا قناة معيارية غير مقصوصة. وقد تصف مكوّنات YIQ الصحيحة لونًا خارج مكعب RGB، لأن المجال المسموح في YIQ لا يطابق تمامًا جميع تركيبات الأحمر والأخضر والأزرق المحصورة بين الصفر والواحد. لذلك تُقص كل نتيجة أولية على حدة: تصبح القيمة الأقل من الصفر صفرًا، وتصبح القيمة الأكبر من الواحد واحدًا. تحتفظ الأداة بالقيم السابقة للقص في unclamped_rgb، وتحدد كل قناة تأثرت في clipped، فلا يحدث القص بصورة خفية. بعد ذلك تضرب كل قناة معيارية مقصوصة في 255 وتقربها إلى أقرب عدد صحيح لإنتاج قنوات 8 بت المألوفة. وتنسق القنوات نفسها كلون ست عشري من ست خانات بحروف صغيرة وكقيمة rgb() في CSS. تجعل المعاملات الثابتة وتقريب الكسور المستقر النتائج قابلة للتكرار والتوقع.
اقرأ النتيجة واستخدمها بأمان
استخدم red وgreen وblue عندما يتطلب التطبيق قنوات صحيحة منفصلة، واستخدم rgb عندما يتطلب مصفوفة من ثلاثة عناصر، واستخدم hex في أدوات التصميم ومنتقيات الألوان، أو css في ورقة الأنماط. يفيد normalized_rgb في برمجيات الرسوم التي تتعامل مع قنوات من الصفر إلى الواحد. أما unclamped_rgb فهو للتشخيص لا للعرض المباشر، إذ يكشف ما أنتجته المصفوفة قبل تقييد النطاق اللوني. افحص clipped عندما تكون دقة اللون مهمة. تعني القناة المقصوصة أن نقطة YIQ المطلوبة تقع خارج RGB القابل للعرض، وأن اللون المعاد هو تقريب ناتج من قص القنوات بصورة مستقلة، وليس تمثيلًا يمكن عكسه بدقة. يهم هذا الفرق عند تحليل إشارات البث القديمة أو نقل صيغ معالجة الصور أو مقارنة تطبيقات تستخدم معاملات مختلفة. سجّل المصفوفة المختارة مع النتائج إذا كان نظام آخر قد يستخدم تعريفًا مختلفًا لـYIQ. تنفذ نقطة النهاية تحويلًا واحدًا لكل طلب بتكلفة $0.002 عبر API، من دون شبكة أو عشوائية أو ساعة أو حالة خفية أو تنسيق مرتبط باللغة.
حالات الاستخدام
فك بيانات ألوان NTSC القديمة
حوّل عينات النصوع واللون المعيارية من مجموعة YIQ أرشيفية أو تعليمية إلى قنوات RGB قابلة للعرض.
التحقق من تطبيق رسومي
قارن ناتج المصفوفة العكسية وقص النطاق والتنسيق الست عشري والتقريب الصحيح بنتيجة مرجعية حتمية.
فحص الألوان الخارجة عن النطاق
استخدم القيم غير المقصوصة والمؤشرات الخاصة بكل قناة لفهم سبب عدم وقوع نقطة YIQ صحيحة داخل مكعب RGB بدقة.
الأسئلة الشائعة
ما مجالات الإدخال المقبولة؟
تقبل Y من 0 إلى 1، وتقبل I من -0.5957 إلى 0.5957، وتقبل Q من -0.5226 إلى 0.5226. يجب أن تكون جميعها أرقام JSON منتهية.
ما المصفوفة العكسية المستخدمة؟
تُستخدم R = Y + 0.956I + 0.621Q وG = Y - 0.272I - 0.647Q وB = Y - 1.106I + 1.703Q.
لماذا قد تُقص مدخلات YIQ صحيحة؟
قد يتجاوز المجال الصحيح مكعب RGB المعياري، ولذلك تُقص القنوات الأولية الخارجة عن 0 إلى 1 كي يمكن عرضها.
كيف تُنتج قنوات RGB ذات 8 بت؟
تُحصر كل قناة معيارية بين 0 و1، ثم تُضرب في 255 وتُقرب إلى أقرب عدد صحيح.
هل يمكن عكس هذا التحويل؟
يمكن ذلك فقط إذا تطابقت المعاملات وطريقة التقريب ولم تُقص أي قناة. كما يفقد التقريب إلى عدد صحيح بعض الدقة.
ما تكلفة طلب API؟
تكلفة كل طلب هي $0.002. يعالج التحويل عنصر لون YIQ واحدًا في كل طلب.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/color/yiq-rgb \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"y":0.5,"i":0.2,"q":-0.1}'const res = await fetch("https://api.kit.forhosting.com/color/yiq-rgb", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"y": 0.5,
"i": 0.2,
"q": -0.1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/yiq-rgb",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"y": 0.5,
"i": 0.2,
"q": -0.1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/yiq-rgb", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"y":0.5,"i":0.2,"q":-0.1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"y":0.5,"i":0.2,"q":-0.1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/yiq-rgb", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"y": 0.5,
"i": 0.2,
"q": -0.1
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.yiq_rgb",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |