محول RGB إلى YUV
قسّم لون RGB إلى سطوع وفرقين لونيين: البرتقالي 255 و128 و0 يعطي Y 0.5936509804 وU −0.2921263922 وV 0.3564952157 بأوزان BT.601. مفيد لمراجعة حسابات الفيديو ومعالجة الصور. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- المقاومة (Ω)
- 255
- G
- 128
- B
- 0
- Y
- 0.5936509804
- U
- -0.2921263922
- الجهد (V)
- 0.3564952157
- الصيغة القياسية
- BT.601
يحوّل هذا المحول قنوات الأحمر والأخضر والأزرق الصحيحة إلى إضاءة وفروق لونية Y′UV تماثلية باستخدام أوزان BT.601 ثابتة. أدخلوا كل قناة بين 0 و255 لتحصلوا على Y وU وV مطبّعة بتقريب عشري مستقر. الحساب محلي وحتمي؛ فلا يستخدم الشبكة أو العشوائية أو الساعة ولا يصحح البيانات غير الصالحة خفيةً.
فهم نتيجة YUV التماثلية
يصف RGB اللون بشدة قنوات الأحمر والأخضر والأزرق. يعيد Y′UV التماثلي تنظيم الإشارات نفسها إلى مكوّن يشبه الإضاءة ومكوّنين لفروق اللون. يمنح الحقل y الأخضر أكبر تأثير، ثم الأحمر فالأزرق، وفق معاملات BT.601 وهي 0.299 و0.587 و0.114.
يحمل الحقلان u وv معلومات اللون؛ إذ يمثل U أساسًا فرق الأزرق ويمثل V فرق الأحمر. يقسم المحول كل عدد صحيح على 255 قبل تطبيق المصفوفة، فتكون R وG وB بين الصفر والواحد. يبقى Y بين الصفر والواحد، ويتراوح U تقريبًا من -0.436 إلى 0.436، وV من -0.615 إلى 0.615.
تنتج الدرجات الرمادية فروقًا لونية تقارب الصفر. تكرر الاستجابة القنوات المتحقق منها، وتعرض المكونات المقرّبة، وتحدد المعيار ونظام المجال. هذه نتيجة Y′UV تماثلية مطبّعة، وليست YCbCr رقمية ذات إزاحات مثل 16 و128.
ويهم هذا الفرق عند المقارنة ببرامج ترميز الفيديو أو مكتبات الصور أو جداول البث التي تطلق اسم YUV على قيم YCbCr بصورة غير دقيقة.
التحقق والحساب القابل لإعادة الإنتاج
قدموا r وg وb أعدادًا صحيحة من 0 إلى 255 شاملًا. تُحلل السلاسل الرقمية ذات الإشارة الاختيارية بعد حذف المسافات الخارجية، بينما تُرفض الكسور والصيغة العلمية والقيم الفارغة والقيم المنطقية والمصفوفات والكائنات وInfinity وNaN. يجب أن يبقى كل رقم مقبول صحيحًا وضمن المجال.
لا تُقص القيمتان 256 و-1، لأن القص قد يخفي بكسلًا تالفًا أو مقياسًا خاطئًا أو مخططًا غير متوافق. بعد التحقق تُقسم كل قناة على 255. تُحسب Y بالصيغة 0.299R + 0.587G + 0.114B، وU بالصيغة -0.14713R - 0.28886G + 0.436B، وV بالصيغة 0.615R - 0.51499G - 0.10001B.
تُقرّب النتائج إلى عشر منازل عشرية ويُحوّل الصفر السالب إلى صفر عادي. لا توجد شبكة أو حالة مخزنة أو عشوائية أو إعدادات محلية أو تواريخ.
الاستخدام الصحيح في مسارات الوسائط
يفيد المحول في دراسة نماذج ألوان التلفاز، والتحقق من معادلات الرسوم، وفصل السطوع عن فروق اللون، وإعداد أمثلة قابلة لإعادة الإنتاج لمعالجة الإشارات. يمكنكم حفظ ألوان RGB معروفة كبيانات اختبار للمظللات أو التصورات أو التطبيقات المستقلة. ويستطيع مختص الوسائط فحص توزيع الألوان الأساسية على Y وU وV قبل دراسة الاختزال اللوني.
احفظوا اصطلاح المجال مع القيمة؛ فالخرج يستخدم إشارات RGB غير خطية مطبّعة ومصفوفة Y′UV بأسلوب BT.601. لا يضيف إزاحات رقمية، ولا يكمّم إلى رموز فيديو محدودة، ولا يختزل اللون، ولا يحوّل sRGB إلى خطي، ولا يغير الألوان الأساسية أو يرمّز فيديو. تسمي تطبيقات كثيرة YCbCr باسم YUV، ولذلك قد تختلف أرقامها.
تحققوا من كون النظام الآخر كامل المجال أو مجال الاستوديو، ومن استخدامه أعدادًا صحيحة أو كسورًا مطبّعة، ومن مصفوفتِه. وبفضل رفض القنوات غير الصالحة يصلح الطرف أيضًا حدًا صارمًا قبل مسار معالجة الألوان.
حالات الاستخدام
شرح الإضاءة والفروق اللونية
وضحوا اختلاف مساهمة ألوان RGB الأساسية في الإضاءة ومحوري فرق اللون ذوي الإشارة.
التحقق من مدخلات الوسائط
ارفضوا قنوات 8 بت سيئة الصياغة أو خارج المجال قبل تحويل RGB إلى YUV حتميًا.
الأسئلة الشائعة
هل الناتج YUV تماثلي أم YCbCr رقمي؟
إنه Y′UV تماثلي مطبّع بأوزان ثابتة مشتقة من BT.601، من دون إزاحات رقمية أو رموز فيديو محدودة المجال.
ما مجال الإدخال المقبول؟
يجب أن تكون كل قناة r وg وb عددًا صحيحًا من 0 إلى 255 شاملًا.
لماذا يمكن أن تكون U وV سالبتين؟
هما إشارتا فرق لون مركزهما الرمادي المحايد، وتحدد الإشارة الاتجاه على محوري فرق الأزرق والأحمر.
هل يقص المحول القنوات غير الصالحة؟
لا، لأن القص يخفي أخطاء المصدر؛ لذلك تعيد أي قناة أقل من 0 أو أكبر من 255 خطأً.
ما القيم التي يعطيها الرمادي والأسود والأبيض؟
أي رمادي محايد تكون فيه U وV صفرًا، لأن قنواته الثلاث متساوية. ويصبح الأسود صفرًا وصفرًا وصفرًا، ويعطي الأبيض Y تساوي واحدًا بلا فروق لونية.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/color/rgb-yuv \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"r":255,"g":128,"b":0}'const res = await fetch("https://api.kit.forhosting.com/color/rgb-yuv", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"r": 255,
"g": 128,
"b": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/rgb-yuv",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"r": 255,
"g": 128,
"b": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/rgb-yuv", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"r":255,"g":128,"b":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"r":255,"g":128,"b":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/rgb-yuv", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"r": 255,
"g": 128,
"b": 0
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.rgb_yuv",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تعيد القيمة الخارجة عن المجال الخطأ invalid_input بدل قصّها. يمكنكم تشغيل الأداة مجانًا في المتصفح، أو استخدام API مقابل $0.002 لكل عنصر ناجح.
التحقق والحساب القابل لإعادة الإنتاج
تُقبل كذلك الأسماء red وgreen وblue والحروف R وG وB كي يمكن ربط النماذج والجداول دون إعادة تسمية الأعمدة. تجعل المعاملات وترتيب العمليات والتقريب الثابتة JSON قابلًا لإعادة الإنتاج. تظهر الإخفاقات باسم invalid_input وتحدد القناة المعنية متى أمكن.
الاستخدام الصحيح في مسارات الوسائط
تعمل الخوارزمية نفسها مجانًا في المتصفح، ويكلف كل عنصر API ناجح $0.002.
حالات التكامل
إنشاء بيانات اختبار للتحويل
أنشئوا ثلاثيات YUV تماثلية مستقرة وفق BT.601 للاختبارات وملفات golden والمقارنات بين اللغات.
أسئلة تقنية
ما تكلفة محول RGB إلى YUV؟
يمكنكم تشغيله مجانًا في المتصفح. يكلف التحويل الناجح عبر API مبلغ $0.002، وتُرفض المدخلات غير الصالحة.