ضبط حرارة لون الصورة
أدخل متوسط الأحمر والأخضر والأزرق في صورة، مثل 142 و128 و110، مع إزاحة قدرها 1200 كلفن، واحصل على ثلاثة معاملات لتوازن أبيض أبرد: ينخفض الأحمر ويرتفع الأزرق ويبقى الأخضر عند واحد. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- Avg r
- 142
- Avg g
- 128
- Avg b
- 110
- الإزاحة (K)
- 1,200
- درجة الحرارة المقدّرة (K)
- 4,843.897796
- درجة الحرارة المستهدفة (K)
- 6,043.897796
- معامل الأحمر
- 0.910823
- معامل الأخضر
- 1
تحوّل هذه الحاسبة متوسطات الأحمر والأخضر والأزرق في الصورة، مع مقدار إزاحة بوحدة Kelvin، إلى ثلاثة معاملات للقنوات. وهي تقدّر درجة حرارة اللون المترابطة، وتطبق التغيير المطلوب نحو الدفء أو البرودة، ثم تعيد مكاسب RGB مطبّعة. يمكنكم استعمال النتيجة ضمن مسار ألوان يعتمد الضوء الخطي للحصول على موازنة بياض قابلة للتكرار من دون رفع الصورة.
جهّزوا متوسط RGB ممثلًا للصورة
ابدؤوا بالمتوسط الحسابي لكل قناة sRGB ذات 8 بت عبر وحدات البكسل التي ينبغي أن تمثل التصحيح. يصلح متوسط الصورة كاملة للصور ذات الإضاءة العامة المتجانسة ودفعات صور المنتجات والصور المصغرة والمعاينات الآلية. أما إذا كان الموضوع ذا لون طاغٍ، فقد يصف متوسط منطقة محايدة الإضاءة بدقة أكبر من الإطار كله.
يمكن لجدار أحمر أو بحر أزرق أن يهيمن على المتوسط العام حتى عندما تكون موازنة البياض في الكاميرا صحيحة. لا تفحص الحاسبة البكسلات ولا تتعرف على الأجسام المحايدة ولا تفصل الإضاءة عن لون الموضوع؛ بل تستخدم الملخص الذي تقدمونه كما هو. يُرفض المتوسط الأسود بالكامل لأنه لا يحتوي على لونية تسمح بتقدير الحرارة.
كما تُرفض الأعداد غير المنتهية والقيم الواقعة خارج مجال 8 بت. حافظوا على طريقة أخذ العينات نفسها في الدفعة كلها حتى تظل التصحيحات قابلة للمقارنة.
اختاروا إزاحة Kelvin وافهموا نموذج الحساب
ترفع القيمة الموجبة الحرارة المقدرة فتنتج تصحيحًا أبرد، بينما تخفضها القيمة السالبة فتنتج تصحيحًا أدفأ. يُسمح بإزاحة من -10,000 إلى 10,000 Kelvin، ويجب أن تبقى النتيجة بين 1,000 و40,000 Kelvin. يحوّل الحساب أولًا قنوات sRGB المتوسطة إلى ضوء خطي ثم إلى لونية CIE XYZ، ويقدّر حرارة اللون المترابطة بتقريب McCamy التكعيبي.
بعد ذلك يقيّم منحنيات RGB حتمية للجسم الأسود عند الحرارة المقدرة والمستهدفة. تتحول النسبة بين نقطتي البياض إلى مكاسب قنوات مطبّعة بحيث يساوي الأخضر واحدًا. هذا تقريب هندسي وليس قياسًا طيفيًا.
تكون حرارة اللون المترابطة أكثر دلالة قرب المسار البلانكي، ولذلك لا تعطي المتوسطات عالية التشبع إلا تقديرًا تقريبيًا. توضّح الطريقة ودرجات الحرارة المعادة هذا الافتراض وتتيح توثيق كل مجموعة مكاسب.
طبّقوا المعاملات من دون الإضرار بالصورة
يفك مسار موثوق ترميز sRGB إلى ضوء خطي، ويضرب كل قناة في مكسبها، ويعالج القيم التي تتجاوز مجال العرض بتعديل التعريض أو تخطيط الدرجات، ثم يعيد الترميز إلى sRGB. قد يبدو ضرب البايتات المشفرة مقبولًا عند تغيير صغير، لكنه لا يحفظ العلاقة المقصودة بين الضوء والقيم المخزنة. يُطبّع الأخضر إلى واحد، لذلك تعبّر النتيجة عن توازن اللون لا عن تغيير شامل في التعريض.
قد يتجاوز الأحمر أو الأزرق واحدًا فتُقص التفاصيل الساطعة؛ لذا استخدموا الفاصلة العائمة أو عمقًا كافيًا قبل التصدير. اختبروا صورًا ممثلة قبل معالجة مجموعة كبيرة، خصوصًا عندما يأتي المتوسط من مشهد غني بالألوان.
حالات الاستخدام
توحيد دفعة صور المنتجات
احسبوا مكاسب قابلة للتكرار بطريقة أخذ العينات نفسها قبل تصدير صور الكتالوج.
إنشاء أداة لموازنة البياض
حوّلوا حركة منزلق Kelvin إلى معاملات RGB صريحة لمحرر ويب أو سطح مكتب.
توثيق تصحيحات قابلة للتكرار
احفظوا الحرارة المقدرة والمستهدفة والمكاسب مع الأصل في مسار وسائط آلي.
الأسئلة الشائعة
ماذا تفعل إزاحة Kelvin الموجبة؟
ترفع حرارة اللون المستهدفة المقدرة، فتنتج تصحيحًا أبرد يزيد الأزرق نسبيًا ويقلل الأحمر.
ما مجال الإزاحة المدعوم؟
يجب أن تكون الإزاحة بين -10,000 و10,000 Kelvin، وأن تبقى النتيجة بين 1,000 و40,000 Kelvin.
لماذا يساوي معامل الأخضر واحدًا دائمًا؟
تُطبّع المكاسب نسبة إلى الأخضر كي تعبّر عن توازن اللون بصورة مستقلة عن تعديل التعريض.
هل نضرب قيم RGB ذات 8 بت مباشرة؟
لا. فكوا sRGB إلى ضوء خطي، وطبقوا المكاسب، وعالجوا المناطق الساطعة، ثم أعيدوا الترميز إلى sRGB.
ما دقة درجة الحرارة المقدرة؟
هي قيمة تقريبية مبنية على اللونية المتوسطة، وتكون أفضل عند تمثيل إضاءة محايدة وأضعف مع الألوان عالية التشبع.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/image/color-temperature-adjust \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"avg_r":142,"avg_g":128,"avg_b":110,"shift_kelvin":1200}'const res = await fetch("https://api.kit.forhosting.com/image/color-temperature-adjust", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"avg_r": 142,
"avg_g": 128,
"avg_b": 110,
"shift_kelvin": 1200
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/color-temperature-adjust",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"avg_r": 142,
"avg_g": 128,
"avg_b": 110,
"shift_kelvin": 1200
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/color-temperature-adjust", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"avg_r":142,"avg_g":128,"avg_b":110,"shift_kelvin":1200}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"avg_r":142,"avg_g":128,"avg_b":110,"shift_kelvin":1200}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/color-temperature-adjust", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"avg_r": 142,
"avg_g": 128,
"avg_b": 110,
"shift_kelvin": 1200
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.color_temperature_adjust",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
min_shift_kelvin | -10000 |
max_shift_kelvin | 10000 |
min_temperature_kelvin | 1000 |
max_temperature_kelvin | 40000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
الحساب حتمي، وتكلفة كل طلب API هي $0.002.
جهّزوا متوسط RGB ممثلًا للصورة
أدخلوا القيم في avg_r وavg_g وavg_b ضمن المجال من 0 إلى 255.
اختاروا إزاحة Kelvin وافهموا نموذج الحساب
أدخلوا shift_kelvin بوصفه تغييرًا نسبيًا لا درجة نهائية مطلقة.
طبّقوا المعاملات من دون الإضرار بالصورة
طبّقوا red_multiplier وgreen_multiplier وblue_multiplier على قيم RGB في الضوء الخطي، لا مباشرة على أرقام القنوات ذات 8 بت والمشفرة بغاما. تكلف كل مطالبة API مقدار $0.002، بينما تنفذ حاسبة المتصفح العملية الحتمية نفسها محليًا مجانًا.
أسئلة تقنية
ما تكلفة طلب API؟
تكلفة كل طلب API هي $0.002. وينفذ إصدار الويب الحساب الحتمي نفسه محليًا مجانًا.