تقدير منطقة قص مربعة متمركزة حول الوجه
وجه بحجم 200 × 240 عند الموضع 400، 250 في صورة بحجم 1200 × 900 يعطي مربعًا بضلع 360 بكسل يبدأ عند x 320 وy 190، والوجه في الوسط مع هامش بمقدار الربع على كل جانب. خطط للقص قبل لمس الصورة. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- العرض
- 1,200
- الارتفاع
- 900
- الوجه X
- 400
- الوجه Y
- 250
- عرض الوجه
- 200
- ارتفاع الوجه
- 240
- X
- 320
- Y
- 190
- الضلع
- 360
- الطرف الأيمن
- 680
تحوّل هذه الأداة نتيجةَ كشف الوجه إلى منطقة قص مربعة جاهزة للاستخدام. ترسل أبعاد الصورة وإطار الوجه المكتشف — الموضع الأفقي والعمودي والعرض والارتفاع — مع هامش اختياري، فتستلم إحداثيات x وy وطول ضلع مربع يُبقي الوجه في المنتصف وداخل الصورة بالكامل. لا تُرفع أي بكسلات ولا تُفكّ شيفرتها ولا تُعالج: إنها حسابات هندسية حتمية بحتة، وهي خطوة التخطيط التي تنفذها قبل القص الفعلي.
لماذا تقدير منطقة القص قبل تنفيذه
يظهر القص الموجَّه بالوجوه في كل مكان: الصور الشخصية، ومولدات الصور الرمزية، والمصغرات في أدلة الأشخاص، والمعاينات الذكية في مكتبات الصور. في جميع هذه الحالات، الجزء المكلف هو فك شيفرة الصورة وإعادة ترميزها، والجزء المزعج هو اكتشاف الخطأ في التأطير بعد فوات الأوان — وجهٌ مقطوع عند الحافة، أو مربع خارج المركز، أو هامش ضيق لا يتحمل قناعاً دائرياً. تفصل هذه الأداة القرارَ الرخيص عن التنفيذ المكلف.
لقد شغّلتَ كاشف الوجوه بالفعل ولديك إطار الوجه؛ فبدلاً من تمرير الصورة مباشرة إلى خط معالجة الصور وأن تأمل في الأفضل، تطلب منطقة القص الدقيقة أولاً.
كيفية حساب المنطقة
الخوارزمية بسيطة عمداً وحتمية بالكامل. أولاً تحدد مركز إطار الوجه. ثم يبدأ طول ضلع المربع من أكبر بُعدَي الوجه (العرض أو الارتفاع)، مضروباً في واحد زائد ضعف الهامش — فالهامش الافتراضي 0.25 يضيف ربع حجم الوجه من كل جهة، فينتج مربعاً يساوي مرة ونصف أكبر ضلع للوجه، وهو تأطير مريح للصور الشخصية.
وإذا كان هذا المربع أكبر من الصورة نفسها، يُصغَّر إلى أصغر أبعاد الصورة. بعد ذلك يُمركز المربع على مركز الوجه، وإذا كان سيتجاوز إحدى الحواف يُزاح إلى داخل الصورة — يُقيَّد ولا يُشوَّه أبداً — بحيث تكون المنطقة المُعادة دائماً قصاً صالحاً داخل الحدود.
موضعها في خط المعالجة
التدفق النموذجي هو: شغّل كاشف الوجوه الذي تختاره، وخذ أفضل إطار وجه، واستدعِ هذه الأداة، ثم مرّر المنطقة المُعادة إلى أداة قص حقيقية مثل أداة image.crop أو عامل المصغرات الخاص بك. ولأن الأداة لا تلمس بايتات الصورة إطلاقاً، يمكنك استخدامها على البيانات الوصفية وحدها — مثلاً لتقرر، قبل تنزيل أي شيء، ما إذا كان وجه مكتشف قرب الحدود سينتج مربعاً صالحاً أم يجب الرجوع إلى تخطيط مختلف.
معامل الهامش هو مقبضك الوحيد: القيمة 0 تعطي مربعاً محكماً حول أكبر ضلع للوجه تماماً، و0.25 هو تأطير الصور الشخصية الافتراضي، و0.5 أو أكثر يترك مساحة للشعر والكتفين.
حالات الاستخدام
توليد صور رمزية مربعة من الملفات المرفوعة
خذ إطار الوجه من الكاشف لديك واحصل على المربع الدقيق الذي تغذي به عامل القص، بهامش يتحمل القناع الدائري.
فحص مسبق لخط إنتاج المصغرات
تحقق من أطر الوجوه واحسب مناطق القص من البيانات الوصفية وحدها، قبل دفع تكلفة فك شيفرة صورة واحدة وإعادة ترميزها.
تدقيق عمليات القص الآلية
خزّن المنطقة المقدَّرة بجانب كل أصل، بحيث يمكن تتبع أي صورة رمزية سيئة التأطير وصولاً إلى الإحداثيات الدقيقة التي أنتجتها.
الأسئلة الشائعة
كم تبلغ التكلفة؟
وتعمل مجاناً أيضاً في متصفحك على هذه الصفحة، مع النتيجة نفسها تماماً.
هل أرفع الصورة؟
لا. تُرسَل أبعاد الصورة وإطار الوجه فقط — ستة أرقام. لا تُنقَل أي بيانات بكسلات ولا تُعالَج ولا تُخزَّن.
ماذا يحدث إذا تجاوز إطار الوجه حدود الصورة؟
إطار الوجه خارج الصورة هو في الغالب خطأ في الكشف أو في تحويل الإحداثيات، فيُبلَّغ عنه بدلاً من قصه بصمت.
ماذا لو تجاوز المربع إحدى الحواف؟
يُزاح المربع إلى داخل الصورة مع الحفاظ على حجمه، وإذا كان أكبر من الصورة نفسها يُصغَّر إلى أصغر أبعادها. المنطقة المُعادة تكون دائماً داخل الحدود بالكامل.
ماذا يفعل الهامش؟
يضيف مساحة إضافية حول الوجه كنسبة من أكبر أضلاعه. القيمة الافتراضية 0.25 تنتج مربعاً يساوي 1.5 ضعف أكبر ضلع للوجه؛ و0 تعطي قصاً محكماً، و0.5 تترك مساحة واسعة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/image/crop-face-center-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"width":1200,"height":900,"face_x":400,"face_y":250,"face_width":200,"face_height":240}'const res = await fetch("https://api.kit.forhosting.com/image/crop-face-center-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"width": 1200,
"height": 900,
"face_x": 400,
"face_y": 250,
"face_width": 200,
"face_height": 240
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/crop-face-center-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"width": 1200,
"height": 900,
"face_x": 400,
"face_y": 250,
"face_width": 200,
"face_height": 240
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/crop-face-center-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"width":1200,"height":900,"face_x":400,"face_y":250,"face_width":200,"face_height":240}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"width":1200,"height":900,"face_x":400,"face_y":250,"face_width":200,"face_height":240}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/crop-face-center-estimate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"width": 1200,
"height": 900,
"face_x": 400,
"face_y": 250,
"face_width": 200,
"face_height": 240
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.crop_face_center_estimate",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تعمل مجاناً في متصفحك على هذه الصفحة، وعبر API بسعر $0.002 لكل استدعاء.
لماذا تقدير منطقة القص قبل تنفيذه
والجواب كائن JSON بسيط يتضمن x وy وطول الضلع، يمكنك تمريره إلى أي أداة قص، من ImageMagick إلى عنصر canvas، أو تخزينه بجانب الأصل بحيث يبقى القرار قابلاً للتدقيق. ولأن العملية حساب حسابي بحت على ستة أرقام، فهي شبه مجانية التكلفة، وتجيب في أجزاء من المللي ثانية، وتتصرف بالطريقة نفسها في المتصفح وعبر API، فيمكنك بناء النموذج الأولي تفاعلياً ثم الأتمتة لاحقاً دون إعادة التحقق من أي نتيجة.
كيفية حساب المنطقة
أما إطار الوجه نفسه فيُتحقق منه بصرامة: الأصول السالبة، والأحجام غير الموجبة، والأطر التي تتجاوز حواف الصورة تثير خطأ invalid_input بدلاً من إنتاج قص معطوب بصمت، لأن إطار وجه خارج الصورة هو خطأ في الكاشف تريد أن تعرف عنه.
موضعها في خط المعالجة
كل شيء يعمل على شبكتنا الطرفية العالمية دون تخزين أي شيء، والوحدة نفسها تشغّل الحاسبة المجانية على هذه الصفحة، فالرقم الذي تراه في المتصفح هو حرفياً الرقم نفسه الذي يعيده API عندما تؤتمت الاستدعاء.
أسئلة تقنية
هل النتيجة حتمية؟
نعم. إنها عملية حسابية بحتة: المدخلات نفسها تعطي الإحداثيات نفسها، في المتصفح وعبر API، دون أي عشوائية أو ساعات أو شبكة.