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