تدوير زوايا الصورة
يبدو تدوير زوايا الصورة بسيطاً، لكن نصف القطر يصبح غير صالح هندسياً عندما يتجاوز نصف طول الضلع الأقصر.
شغّل الأداة مجانًا
تتحقق هذه الحاسبة من العرض والارتفاع ونصف القطر المقترح قبل تطبيق التأثير. يعيد الطلب الصحيح أكبر نصف قطر مسموحاً ووصفاً واضحاً لقناع ألفا على هيئة مستطيل مستدير. أما الطلب غير الصحيح فيفشل فوراً، مما يساعد أدوات التصميم وبرامج التصدير وأنظمة المحتوى على رفض الإعدادات المستحيلة قبل بدء التصيير.
تحقق من نصف القطر قبل معالجة الصورة
أدخل عرض الصورة وارتفاعها بوصفهما عددين صحيحين موجبين من وحدات البكسل، ثم حدد نصف قطر الزوايا المطلوب بالبكسل. تعثر أداة التحقق على الضلع الأقصر وتقسمه على 2 لتحديد أكبر نصف قطر يمكن استخدامه من دون تقاطع أقواس الزوايا المتقابلة. في صورة أبعادها 1200 في 800 مثلاً، يبلغ الضلع الأقصر 800 بكسل، ولذلك يكون أكبر نصف قطر صالح 400 بكسل. تُقبل القيم من صفر إلى 400، بما فيها القيم الكسرية عندما يدعم محرك التخطيط أو التصيير هندسة أجزاء البكسل. تُرفض أي قيمة أكبر مع خطأ إدخال يوضح الحد المحسوب. يفيد هذا الفحص قبل استدعاء أداة لتحويل الصور لأنه يفصل القرار الهندسي القليل التكلفة عن فك الملف أو رفعه أو تصييره. كما يطبق قاعدة واحدة في نماذج الويب وواجهات API، فلا يخفض أحد العملاء القيمة بصمت بينما يفشل عميل آخر. يجب أن يكون العرض والارتفاع عددين صحيحين موجبين لأنهما يمثلان أبعاد صورة نقطية فعلية، ويجب أن يكون نصف القطر عدداً محدوداً غير سالب.
افهم قناع المستطيل ذي الزوايا المستديرة
تصف النتيجة الصحيحة قناع ألفا له عرض الصورة المصدر وارتفاعها نفسيهما. تظل المنطقة الوسطى معتمة. وفي كل زاوية يحدد قوس يمثل ربع دائرة بنصف القطر المطلوب الحد الفاصل؛ تبقى وحدات البكسل داخل المستطيل المستدير مرئية، بينما تصبح الوحدات الواقعة خارج الأقواس الأربعة شفافة عند تطبيق القناع. تصف هذه القدرة العملية، لكنها لا ترفع ملف صورة ولا تفك ترميزه ولا تعدله. ينتج نصف القطر صفر مستطيلاً معتماً عادياً، ولذلك لا تُزال أي وحدات بكسل من الزوايا. وعند استخدام الحد الأقصى تلتقي الأقواس على امتداد البعد الأقصر؛ فتتحول الصورة المربعة إلى دائرة، بينما تأخذ الصورة المستطيلة شكلاً شبيهاً بالكبسولة. تكرر الاستجابة الأبعاد المقبولة ونصف القطر والحد الأقصى المحسوب، وتضيف وصفاً مقروءاً للقناع. لذلك تصلح النتيجة للسجلات ورسائل التحقق ومواصفات التصميم والبرامج اللاحقة التي تحتاج إلى شرح التأثير قبل استدعاء محرك التصيير. ولا تُفترض طريقة استيفاء محددة، لأن تنعيم الحواف من اختصاص محرك الصور الذي يطبق القناع فعلياً.
استخدم قاعدة هندسية واحدة في التصميم والأتمتة
يمنع التحقق المتسق من نصف القطر ظهور اختلافات دقيقة بين النماذج الأولية ومواقع الويب وتطبيقات الهاتف ومهام معالجة الصور المجمعة. يستطيع نظام التصميم فحص مواصفات الصور الرمزية والبطاقات قبل نشر رموزه. ويمكن لخدمة الوسائط رفض تحويل غير صالح قبل تخصيص موارد المعالجة. كما يستطيع المتجر التأكد من أن التدوير المختار يعمل مع جميع مقاسات الصور المصغرة التي سينشئها. ولأن هذه القدرة لا تنفذ إلا حساباً حتمياً وإنشاء نص، فإن المدخلات المتطابقة تعطي دائماً النتيجة نفسها؛ فلا تستخدم الشبكة أو العشوائية أو الساعة أو التخزين أو أي عملية صور خفية. يحافظ الحساب على أبعاد اللوحة الأصلية لأن تدوير الزوايا يغير الرؤية عند الحواف ولا يغير حجم اللوحة نفسها. يعتمد أكبر نصف قطر على الضلع الأقصر فقط، ولذلك لا يؤدي تبديل العرض والارتفاع إلى تغيير الحد المسموح. يبلغ سعر طلب API الواحد $0.002، ويمكن تشغيل الحساب النقي نفسه مجاناً في المتصفح. استخدم الوصف الناتج خطةً أو سجل تحقق، ثم مرر نصف القطر الذي جرى التحقق منه إلى محرك مستقل ينفذ تحويل وحدات البكسل فعلياً.
حالات الاستخدام
فحص هندسة الصورة الرمزية
تأكد من صلاحية نصف قطر صورة الملف الشخصي وحدد ما إذا كانت الصورة الرمزية المربعة ستصبح دائرة كاملة.
حماية API لتحويل الصور
ارفض إعدادات الزوايا المستحيلة قبل رفع الصورة المصدر أو فك ترميزها أو تصييرها.
التحقق من رموز التصميم
قارن أنصاف الأقطار المشتركة بكل مقاس صورة وحافظ على سلوك متسق في الويب والهاتف والتصدير.
الأسئلة الشائعة
ما أكبر نصف قطر مسموح به للزوايا؟
يساوي نصف البعد الأقصر للصورة. في صورة أبعادها 800 في 600، يكون أكبر نصف قطر 300 بكسل.
ماذا يحدث إذا كان نصف القطر كبيراً جداً؟
يفشل الطلب بخطأ إدخال غير صالح يتضمن أكبر نصف قطر محسوب من أبعاد الصورة.
هل تعدل هذه القدرة ملف الصورة؟
لا. إنها تتحقق من الأبعاد وتصف قناع ألفا؛ ويجب أن يطبق محرك تصيير مستقل القناع على وحدات البكسل.
هل يمكن أن يكون نصف القطر صفراً أو كسرياً؟
نعم. يصف الصفر قناعاً مستطيلاً بلا زوايا محذوفة، وتُقبل أي قيمة كسرية محدودة ضمن الحد.
هل يغير تدوير الزوايا أبعاد اللوحة؟
لا. يحتفظ القناع بالعرض والارتفاع الأصليين، ولا يجعل شفافاً إلا وحدات البكسل الواقعة خارج الأقواس.
ما تكلفة طلب API؟
تكلفة كل طلب API هي $0.002. ويمكن أيضاً تنفيذ الحساب الحتمي في المتصفح من دون اتصال بالشبكة.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/image/round-corners \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"width":1200,"height":800,"radius":64}'const res = await fetch("https://api.kit.forhosting.com/image/round-corners", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"width": 1200,
"height": 800,
"radius": 64
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/round-corners",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"width": 1200,
"height": 800,
"radius": 64
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/round-corners", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"width":1200,"height":800,"radius":64}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"width":1200,"height":800,"radius":64}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/round-corners", 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": 800,
"radius": 64
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.round_corners",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |