تحويل RGB565 إلى RGB
اقرأ قيمة RGB565 من 16 بت كلون عادي: القيمة 0xF800، أي 63488، هي الأحمر الصافي 255 و0 و0 واللون #FF0000. تُمدّ خمس بتات للأحمر وست للأخضر وخمس للأزرق إلى النطاق الكامل مع عرض المستويات المخزنة. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- القيمة
- 0xF800
- القيمة
- 63,488
- RGB565 (سداسي عشري)
- 0xF800
- Red5
- 31
- الأخضر (6 بت)
- 0
تحوّل هذه الأداة قيمة لون RGB565 المدمجة ذات 16 بت إلى قنوات الأحمر والأخضر والأزرق المعتادة ذات 8 بت. تتحقق من أن الإدخال عدد صحيح ضمن نطاق 16 بت غير الموقّع، ثم تفصل خمس بتات للأحمر وست بتات للأخضر وخمس بتات للأزرق، وتوسّع كل قناة بصورة حتمية إلى المجال من 0 إلى 255. يمكنكم إدخال قيمة عشرية أو قيمة سداسية عشرية مسبوقة بـ0x، وستحصلون على القيمة المعبأة الأصلية وحقول البتات وسلسلة RGB ولون سداسي عشري من ست خانات.
فهم ترتيب RGB565
يخزّن RGB565 اللون في ستة عشر بت بدلا من الأربع والعشرين بت المستخدمة في RGB المعتاد ذي 8 بت. تمثل البتات الخمس الأعلى الأحمر، وتمثل البتات الست الوسطى الأخضر، وتمثل البتات الخمس الأدنى الأزرق. يحصل الأخضر على بت إضافي لأن العين البشرية شديدة الحساسية للتغيرات في هذا الجزء من الطيف.
لفك القيمة، تزيح الأداة العدد الصحيح وتطبّق الأقنعة لاستخراج الأحمر من 0 إلى 31، والأخضر من 0 إلى 63، والأزرق من 0 إلى 31. ثم تعرض هذه المكونات منخفضة العمق إلى جانب قيمها الموسعة. تفيد النتيجة المطورين الذين يحتاجون إلى لون جاهز للعرض، كما تفيد المهندسين الذين يريدون فحص الحقول الدقيقة المخزنة في البرامج الثابتة أو مخزن إطارات مضمّن أو أصل ثنائي أو بروتوكول جهاز.
ويُستكمل الشكل السداسي العشري دائما إلى أربع خانات، لذلك تبقى الأصفار البادئة ظاهرة وتصبح المقارنة واضحة.
كيفية توسيع القنوات إلى 8 بت
لا تحتوي القناة منخفضة العمق على معلومات كافية لاسترجاع العينة الأصلية ذات 8 بت بدقة، ولذلك يكون فكها قيمة تقريبية بالضرورة. تستخدم الأداة تحجيما تناسبيا صريحا مع التقريب إلى أقرب عدد صحيح. يُضرب الأحمر والأزرق في 255 ثم يُقسمان على 31 ويُقرّبان، بينما يُضرب الأخضر في 255 ثم يُقسم على 63 ويُقرّب.
وبذلك تتطابق النهايات تماما: يبقى الصفر صفرا وتصبح القيمة القصوى لكل مكون 255. تنتشر القيم الوسطية على نطاق 8 بت كاملا بلا عشوائية أو اختلاف يعتمد على بيئة التنفيذ. يمكن إعادة تطبيق القاعدة في JavaScript أو C أو Rust أو Python أو جدول بيانات، كما تتيح حقول الإخراج مراجعة كل خطوة.
تستخدم بعض الأنظمة تكرار البتات، وهو أسلوب يعطي نتيجة قريبة لكنها ليست متطابقة دائما. هنا تبقى القاعدة التناسبية ثابتة وموثقة لضمان اختبارات ومقارنات موثوقة بين اللغات.
تقديم إدخال صالح والاستفادة من النتيجة
أدخلوا قيمة RGB565 واحدة غير موقعة بأرقام عشرية مثل 63488، أو بصيغة سداسية عشرية مع السابقة الإلزامية 0x مثل 0xF800. يمتد النطاق المقبول من 0 إلى 65535 شاملا الطرفين، لأن أي قيمة أكبر لا تتسع في ستة عشر بت. تُرفض الأعداد السالبة والكسور والحروف السداسية بلا سابقة والمحارف اللاحقة والمصفوفات والكائنات غير المطابقة بدلا من تفسيرها جزئيا.
يمنع هذا التحقق الصارم قيمة مثل 65536 من الالتفاف إلى الأسود وإخفاء خطأ سابق في البيانات. يتضمن الإخراج العدد العشري الموحّد، وقيمة RGB565 السداسية المكتملة، ومكونات 5/6/5 الأصلية، وقيم r وg وb الموسعة، وسلسلة rgb()، ورمز RGB سداسيا من ست خانات. يمكنكم تمرير القنوات إلى شيفرة الصور أو مقارنة اللون أثناء التصحيح أو حفظ الشكلين في سجل تحويل.
حالات الاستخدام
فحص ألوان الشاشات المضمّنة
حوّلوا ثوابت البرامج الثابتة أو مخزن الإطارات إلى قيم RGB مألوفة مع الاحتفاظ بحقول 5/6/5 الأصلية.
فك أصول الصور الثنائية
فكّكوا كلمات البكسل ذات 16 بت إلى قنوات 8 بت للتشخيص أو المعاينة أو التحويل الحتمي.
إنشاء عينات اختبار بين اللغات
ولّدوا قيما معبأة وموسعة واضحة لمقارنة تطبيقات RGB565 في البرامج والأجهزة والاختبارات.
الأسئلة الشائعة
ما صيغ الإدخال المقبولة؟
استخدموا أرقاما عشرية من 0 إلى 65535 أو قيمة سداسية مع السابقة 0x، مثل 63488 أو 0xF800.
لماذا يستخدم الأخضر ست بتات؟
يخصص RGB565 ست بتات للأخضر وخمس بتات لكل من الأحمر والأزرق، مما يوفر تدرجا أخضر أدق ضمن كلمة 16 بت.
هل يمكن استرجاع لون 8 بت الأصلي بدقة؟
لا، فقد أزال التعبئة معلومات منخفضة الرتبة. القنوات الناتجة قيم تقريبية حتمية موزعة على المجال الكامل من 0 إلى 255.
كيف تُوسّع القنوات؟
يستخدم الأحمر والأزرق round(المكون × 255 ÷ 31)، ويستخدم الأخضر round(المكون × 255 ÷ 63).
ماذا يحدث إذا أدخلت 65536؟
تُرفض القيمة. يجب أن تتسع قيمة RGB565 في ست عشرة بت، لذا فالنطاق المقبول من 0 إلى 65535، ولا يتحول الرقم الأكبر إلى الأسود بصمت فيبقى الخطأ في المصدر ظاهرًا.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/color/rgb565-rgb \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"0xF800"}'const res = await fetch("https://api.kit.forhosting.com/color/rgb565-rgb", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "0xF800"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/rgb565-rgb",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "0xF800"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/rgb565-rgb", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"0xF800"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"0xF800"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/rgb565-rgb", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"value": "0xF800"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.rgb565_rgb",
"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.
أسئلة تقنية
ماذا يحدث للقيمة الواقعة خارج النطاق؟
يعيد الطلب خطأ invalid_input من دون التفاف أو اقتطاع أو تفسير للبتات الإضافية.
ما كلفة التحويل عبر API؟
تبلغ كلفة كل طلب API مقدار $0.002، ويمكنكم أيضا تشغيل التحويل تفاعليا في المتصفح.