طبّق مرشح سيبيا على بكسلات RGB للصورة
يتحول الأحمر الصافي 255، 0، 0 إلى البني الدافئ 100، 89، 69 بمصفوفة سيبيا القياسية، وتُقرَّب كل قناة وتبقى بين 0 و255. أدخل قيم RGB للبكسلات واحصل على نسخها بلون السيبيا بالترتيب نفسه. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
يمكنكم تطبيق مرشح سيبيا على بكسلات صورة مفكوكة الترميز من دون رفع ملف أو الاعتماد على برنامج ترميز صور. أرسلوا مصفوفة مرتبة من عينات RGB لتحصلوا على العينات المقابلة بدرجات بنية دافئة محسوبة بواسطة مصفوفة تحويل سيبيا القياسية. تُقرّب قيمة كل قناة محوّلة وتُحصر ضمن المجال الصحيح من صفر إلى 255. يمنع التحقق الكامل البكسلات الناقصة أو غير الصالحة من تغيير النتيجة بصمت، كما تجعل المعالجة الحتمية هذه الأداة مناسبة لمسارات الإنتاج، والفحص في المتصفح، والتعليم، والاختبارات الآلية الدقيقة.
جهّزوا عينات بكسلات RGB مكتملة
ضعوا البكسلات مفكوكة الترميز في الحقل samples على هيئة مصفوفة غير فارغة من الكائنات. يجب أن يحتوي كل كائن على القنوات r وg وb، وأن تكون قيمة كل قناة عددًا محدودًا بين صفر و255 شاملين. تُستخدم الأعداد الصحيحة عادةً، لكن الأعداد الكسرية مقبولة لأن بعض مسارات معالجة الصور تنتج عينات وسيطة بفاصلة عائمة قبل الترميز النهائي.
تفحص الأداة كل سجل ولا تفترض أن المكوّن المفقود يساوي صفرًا. يحمي هذا السلوك الصارم بنية الصورة؛ فتجاهل سجل واحد يزيح جميع البكسلات التالية، واستبدال قيمة يخترع معلومات لونية لم يرسلها المستخدم. حافظوا على ترتيب البيانات النقطية لأن المخرجات تطابق ترتيب المدخلات تمامًا.
يقبل الطلب الواحد حتى مئة ألف سجل. قسّموا الصور الأكبر إلى كتل ثابتة الحجم، ثم ادمجوا مصفوفات النتائج وفق ترتيب الطلبات نفسه. تتعامل هذه القدرة مع عينات RGB لا مع وحدات بايت PNG أو JPEG أو AVIF أو WebP.
فكّوا ترميز الملف أولًا، واحتفظوا بالعرض والارتفاع وخطوة الصف والاتجاه وقناة ألفا بصورة منفصلة لإعادة دمجها عند الترميز.
افهموا طريقة تحويل سيبيا القياسية
ينتج كل بكسل في المخرجات من ثلاثة مجاميع موزونة. تُحسب القناة الحمراء بضرب r في 0.393 وإضافة g في 0.769 وb في 0.189. تستخدم القناة الخضراء r في 0.349 وg في 0.686 وb في 0.168.
وتستخدم القناة الزرقاء r في 0.272 وg في 0.534 وb في 0.131. تغيّر مصفوفة سيبيا الشائعة هذه السطوع وتوازن القنوات معًا، فتنتج مناطق مضيئة يغلب عليها الأحمر والأخضر الدافئان وتخفّض الأزرق. تقرّب الأداة كل مجموع إلى أقرب عدد صحيح ثم تحصره ضمن المجال الشامل من صفر إلى 255.
هذا الحصر ضروري لأن صفوف المصفوفة قد تنتج قيمًا تتجاوز 255 عند معالجة البكسلات الساطعة. من دونه قد يفيض مخزن بايت لاحق أو يرفض القيمة أو يعرض لونًا غير مقصود. تتضمن الاستجابة المصفوفة والعينات المحوّلة وعددها، كي توثّق السجلات والاختبارات التحويل المستخدم بدقة.
المعالجة نقية وحتمية؛ فلا تستخدم شبكة أو نموذجًا أو عشوائية أو الوقت الحالي أو ملف تعريف لونيًا خفيًا أو ذاكرة مؤقتة قابلة للتغيير. ولا تحوّل RGB المصحح بأشعة غاما إلى قيم خطية، ولا تفسر ملفات ICC، ولا تحاكي فيلمًا كيميائيًا، ولا تضيف تحببًا، ولا تحفظ الشفافية، ولا تمزج النتيجة مع الأصل.
ادمجوا النتيجة المحوّلة وتحققوا منها
استخدموا مصفوفة samples المعادة بوصفها بديلًا موضعيًا لمصفوفة RGB المرسلة. يجب أن يساوي الحقل count عدد سجلات الإدخال؛ قارنوا القيمتين قبل إعادة بناء رقعة أو صف أو صورة مصغرة أو مخزن لوحة أو صورة نقطية كاملة. إذا كانت الصورة الأصلية شفافة، فاحتفظوا بقيم ألفا في مخزن موازٍ وأعيدوها عند الترميز، لأن هذا العقد يحوّل الأحمر والأخضر والأزرق فقط.
تشمل اختبارات التراجع الجيدة الأسود والأبيض والرمادي المحايد والأحمر والأخضر والأزرق النقية وعينة كسرية وسجلًا ناقصًا ينبغي أن يفشل. يفيد الأبيض الساطع في التأكد من حصر النتائج الثلاث في 255. وتكشف الألوان النقية أي تغيير عرضي في المعاملات أو ترتيب القنوات.
تعاملوا مع أخطاء التحقق باعتبارها مشكلات في فك الترميز أو إنشاء الطلب، لا أعطالًا مؤقتة تستدعي إعادة الطلب بلا تعديل. صححوا القنوات المفقودة والقيم الواقعة خارج المجال وقيم NaN قبل الإرسال مجددًا.
حالات الاستخدام
أنشئوا مخازن صور بدرجات سيبيا
حوّلوا بكسلات RGB مفكوكة الترميز إلى عينات سيبيا دافئة، ثم أعيدوا أبعاد الصورة الأصلية ورمّزوا النتيجة.
أنشئوا مراجع اختبار دقيقة
ولّدوا قيمًا متوقعة حتمية لاختبار شيفرة اللوحات ومكتبات الصور ومسارات تحويل البكسلات.
الأسئلة الشائعة
ما مصفوفة سيبيا المستخدمة؟
تستخدم الأداة الصفوف [0.393, 0.769, 0.189] و[0.349, 0.686, 0.168] و[0.272, 0.534, 0.131] لإنتاج الأحمر والأخضر والأزرق.
ماذا يحدث إذا تجاوزت قناة محوّلة القيمة 255؟
تُقرّب كل نتيجة موزونة إلى أقرب عدد صحيح، ثم تُحصر ضمن المجال الشامل من صفر إلى 255.
هل تقبل الأداة ملفات صور مرمزة أو تحفظ ألفا؟
لا. تقبل سجلات RGB مفكوكة الترميز فقط. احتفظوا بألفا وأبعاد الصورة منفصلة، ثم رمّزوا العينات المعادة.
إلى أي لون يتحول الأبيض الصافي في السيبيا؟
يصبح 255، 255، 239، أي لونًا كريميًا دافئًا. يتجاوز مجموعا الأحمر والأخضر القيمة 255 فيُثبَّتان عند الحد الأعلى، بينما ينخفض الأزرق قليلًا، وهذا ما يمنح المناطق الفاتحة دفأها.
ماذا يحدث إذا نقصت قناة في أحد البكسلات؟
يتوقف التحويل كله ويذكر موضع البكسل والقناة الناقصة. فتخطي البكسل يزيح كل ما بعده، وملء قيمة بديلة يخترع لونًا لم تدخله أنت أصلًا.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/image/sepia-convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"samples":[{"r":255,"g":0,"b":0},{"r":30,"g":120,"b":220}]}'const res = await fetch("https://api.kit.forhosting.com/image/sepia-convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"samples": [
{
"r": 255,
"g": 0,
"b": 0
},
{
"r": 30,
"g": 120,
"b": 220
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/sepia-convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"samples": [
{
"r": 255,
"g": 0,
"b": 0
},
{
"r": 30,
"g": 120,
"b": 220
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/sepia-convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"samples":[{"r":255,"g":0,"b":0},{"r":30,"g":120,"b":220}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"samples":[{"r":255,"g":0,"b":0},{"r":30,"g":120,"b":220}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/sepia-convert", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"samples": [
{
"r": 255,
"g": 0,
"b": 0
},
{
"r": 30,
"g": 120,
"b": 220
}
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.sepia_convert",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_samples | 100000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
جهّزوا عينات بكسلات RGB مكتملة
فإذا كانت القناة b مفقودة من العينة 4 مثلًا، يفشل الطلب كله بخطأ invalid_input يحدد الفهرس الذي يبدأ من الصفر والقناة المفقودة.
ادمجوا النتيجة المحوّلة وتحققوا منها
يستخدم مشغّل المتصفح وواجهة API دالة solve نفسها، ولذلك يمكنكم فحص بضعة بكسلات نموذجية قبل أتمتة مهمة أكبر. التشغيل في المتصفح مجاني، بينما تبلغ كلفة كل طلب API مقدار $0.002.
حالات التكامل
افحصوا ألوانًا نموذجية
اختبروا لوحة ألوان صغيرة في المتصفح قبل تشغيل المصفوفة نفسها ضمن مسار API آلي.
أسئلة تقنية
ماذا يحدث عند فقدان قناة من عينة؟
يفشل الطلب بخطأ invalid_input ويحدد فهرس العينة الذي يبدأ من الصفر والقناة المفقودة r أو g أو b.
كم تبلغ كلفة طلب API؟
تبلغ كلفة طلب API مقدار $0.002. ويمكنكم أيضًا تشغيل التحويل الحتمي نفسه مجانًا في المتصفح.