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