حساب فرق التعريض بالوقفات بين إعدادين
تقارن حاسبة فرق التعريض هذه بين إعدادين فوتوغرافيين كاملين يتكون كل منهما من فتحة العدسة ومدة الغالق وISO.
شغّل الأداة مجانًا
وتحول التغير المشترك إلى عدد موقّع من الوقفات، لكي تعرفوا هل يسجل الإعداد الثاني تعريضًا أكبر أم أقل من الأول. تعني النتيجة الموجبة أن الإعداد الثاني أسطع، وتعني السالبة أنه أغمق، أما الصفر فيعني أن التركيبين متكافئان. وتعرض الأداة إسهام الفتحة والغالق وISO كلًّا على حدة لتسهيل مراجعة الحساب، كما ترفض القيم المفقودة أو غير المنتهية أو الصفرية أو السالبة قبل بدء العملية.
كيفية مقارنة تعريضين فوتوغرافيين
يتشكل التعريض من ثلاثة إعدادات تعمل معًا. تحدد مدة الغالق الزمن الذي يصل فيه الضوء إلى المستشعر، ويغير ISO الحساسية المسجلة، بينما تتحكم الفتحة في الضوء وفق مربع الرقم البؤري. تمثل الحاسبة كل تركيب بقيمة نسبية تساوي ISO مضروبًا في مدة الغالق بالثواني ومقسومًا على مربع الفتحة. ثم تقسم تعريض الإعداد الثاني على الأول وتطبق لوغاريتم الأساس 2 على النسبة. وهكذا تحصلون على فرق موقّع بالوقفات. تعني وقفة موجبة واحدة أن التركيب الثاني يسجل ضعف التعريض النسبي، وتعني وقفة سالبة واحدة أنه يسجل النصف. تقارن الأداة الإعدادات ولا تحكم على صحة تعريض الصورة، لأن سطوع المشهد والمرشحات والفلاش والقياس والقصد الفني ليست ضمن القيم الست. يجب أن تكون جميع قيم الفتحة والغالق وISO منتهية وموجبة قطعًا، حتى تكون النسبة واللوغاريتم صالحين من الناحية الفيزيائية.
قراءة النتيجة الموقعة ومكوناتها
تصف النتيجة الرئيسية stops_difference التركيب الثاني نسبة إلى الأول. تشير القيمة الموجبة إلى أنه أسطع، والسالبة إلى أنه أغمق، والصفر إلى تكافؤ الاثنين. ويعرض exposure_ratio المقارنة نفسها بوصفها معامل ضرب. تفصل الاستجابة أيضًا بين aperture_stops وshutter_stops وiso_stops، ويكون مجموع هذه الإسهامات الموقعة هو النتيجة الكلية. يؤدي فتح العدسة بخفض الرقم البؤري إلى إسهام موجب، بينما يؤدي تضييقها إلى إسهام سالب. وتضيف مدة الغالق الأطول تعريضًا، في حين تنقصه المدة الأقصر. كما يضيف رفع ISO إسهامًا موجبًا ويضيف خفضه إسهامًا سالبًا. يفيد هذا التفصيل عندما تغيرون عدة عناصر معًا، إذ قد يعوض الغالق وISO النقص الناتج عن الفتحة. النتائج العشرية طبيعية عندما لا تقع الإعدادات على وقفات كاملة. وتُنظف الدقة بصورة ثابتة لكي تعيد الطلبات المتكررة وحسابات المتصفح JSON متطابقًا من دون إخفاء كسور الوقفات المهمة.
فحوص عملية لتخطيط الصور ومراجعتها
استخدموا الحاسبة عندما تتوفر لديكم مجموعتان كاملتان من مثلث التعريض وتريدون مقارنة مباشرة، لا عندما تبحثون عن إعداد مجهول. يمكنكم مقارنة لقطة محمولة بأخرى على حامل، أو قياس التغير بين سجلين من البيانات الوصفية، أو التحقق من أن الغالق وISO عوضا تغيير الفتحة بالكامل. أدخلوا مدة الغالق بالثواني؛ فمثلًا تكتب مدة واحد على مئة وخمسة وعشرين بالشكل 0.008. أدخلوا الفتحة باعتبارها الرقم البؤري المطبوع على العدسة، وISO باعتباره الحساسية الرقمية. الترتيب مهم، لأن تبديل التركيبين يعكس الإشارة مع إبقاء المقدار نفسه. لا يعني تساوي التعريض تطابق ضبابية الحركة أو عمق المجال أو التشويش. تعمل الخوارزمية بصورة حتمية ولا تستخدم الشبكة أو التخزين أو العشوائية أو الوقت الحالي، ولذلك تناسب الدروس وفحوص الإنتاج والاختبارات المؤتمتة وتحليل البيانات الوصفية. تبلغ كلفة طلب API الناجح $0.002، بينما يتوفر الحساب نفسه مجانًا في المتصفح.
حالات الاستخدام
مقارنة إعدادين للكاميرا
قيسوا تغير التعريض الموقّع بعد تعديل الفتحة ومدة الغالق وISO معًا.
مراجعة بيانات الصور الوصفية
حولوا مجموعتين من قيم EXIF إلى فرق بالوقفات وإسهام قابل للمراجعة لكل عنصر.
تدقيق تمارين مثلث التعريض
تحققوا مما إذا كان التركيب الثاني مكافئًا للإعداد الأول أو أسطع منه أو أغمق.
الأسئلة الشائعة
ماذا يعني فرق الوقفات الموجب؟
يعني أن التركيب الثاني ينتج تعريضًا نسبيًا أكبر. وقفة موجبة واحدة تعادل الضعف.
ماذا تعني النتيجة السالبة؟
تعني أن التركيب الثاني ينتج تعريضًا نسبيًا أقل. سالب وقفة واحدة يساوي نصف تعريض الأول.
هل يمكن أن تعطي إعدادات مختلفة صفرًا؟
نعم، فقد تتعادل الفتحة والغالق وISO، مع احتمال اختلاف عمق المجال والحركة والتشويش.
كيف تُدخل سرعة الغالق؟
أدخلوا المدة بالثواني في صورة عدد موجب. فمثلًا واحد على مئة وخمسة وعشرين يساوي 0.008.
لماذا تُرفض القيم الصفرية أو السالبة؟
يجب أن تكون الفتحة والمدة وISO موجبة قطعًا حتى يمكن حساب نسبة ولوغاريتم صالحين.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/image/exposure-stops-calc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"aperture_1":4,"shutter_1":0.008,"iso_1":100,"aperture_2":5.6,"shutter_2":0.016,"iso_2":200}'const res = await fetch("https://api.kit.forhosting.com/image/exposure-stops-calc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"aperture_1": 4,
"shutter_1": 0.008,
"iso_1": 100,
"aperture_2": 5.6,
"shutter_2": 0.016,
"iso_2": 200
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/exposure-stops-calc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"aperture_1": 4,
"shutter_1": 0.008,
"iso_1": 100,
"aperture_2": 5.6,
"shutter_2": 0.016,
"iso_2": 200
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/exposure-stops-calc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"aperture_1":4,"shutter_1":0.008,"iso_1":100,"aperture_2":5.6,"shutter_2":0.016,"iso_2":200}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"aperture_1":4,"shutter_1":0.008,"iso_1":100,"aperture_2":5.6,"shutter_2":0.016,"iso_2":200}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/exposure-stops-calc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"aperture_1": 4,
"shutter_1": 0.008,
"iso_1": 100,
"aperture_2": 5.6,
"shutter_2": 0.016,
"iso_2": 200
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.exposure_stops_calc",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_mb | 15 |
max_megapixels | 12 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |