تغيير حجم الصورة بالنسبة المئوية
تجيب حاسبة تغيير الحجم بالنسبة المئوية عن أبسط سؤال في معالجة الصور: إذا قمتُ بتحجيم هذه الصورة إلى 40 بالمئة، فكم سيكون عرضها وارتفاعها بالبكسل؟ تُدخل أنت العرض والارتفاع الأصليين مع النسبة المئوية، فتُرجع لك الأداة الأبعاد الناتجة مقرَّبة إلى أقرب بكسل صحيح، إضافة إلى عدد الميغابكسل النهائي.
شغّل الأداة مجانًا
العملية حسابية بحتة — لا يجري رفع أي صورة أو معالجتها أو تخزينها — لذلك تعمل فورًا داخل متصفحك، وبالمثل تمامًا عبر API عندما تحتاج إليها داخل سكربت بناء، أو خط أنابيب لتوليد الصور المصغرة، أو حساب تخطيط يتطلب معرفة الصندوق الدقيق الذي ستحتله الصورة قبل وجودها.
لماذا يبدو التحجيم بالنسبة المئوية أبسط مما هو عليه
يبدو تحجيم صورة إلى نسبة مئوية عمليةَ ضرب واحدة، لكن التفاصيل هي التي تحدد ما إذا كان تخطيطك سينكسر. يجب تحجيم كل ضلع على حدة وتقريبه إلى بكسل صحيح، لأنه لا وجود لشيء مثل 640.5 بكسل. إذا قرّبت 1920 بنسبة 33 بالمئة بطريقة ساذجة ستحصل على 633.6، وهو رقم لا يقبله أي مُصيِّر؛ أما هذه الحاسبة فتُرجع 634. وتبلغ قاعدة التقريب أهميتها القصوى مع الصور الصغيرة: تصغير أيقونة من 11 بكسل إلى 15 بالمئة يعطي 1.65 بكسل، والإجابة الصحيحة هي 2 وليست 1 مقطوعة تشوّه نسبة الأبعاد بصمت. حصولك على هذه الأرقام قبل أن تلمس الصورة يتيح لك تخصيص حجم اللوحة الصحيح مسبقًا في مهمة إنتاج المصغرات، وكتابة سمتي العرض والارتفاع الصحيحتين في HTML حتى لا يعاد تدفق الصفحة عند تحميل الصورة، والتحقق من أن أداة التحجيم الجماعي أنتجت ما طلبته فعلًا. إن أداة تغيير حجم الصورة بالنسبة المئوية تُجري هذا الحساب بدقة وبشكل حتمي، بحيث تكون الإجابة التي تراها في المتصفح مطابقة تمامًا للإجابة التي يعيدها API إلى شيفرتك.
كيف يعمل الحساب
الصيغة سطر واحد لكل بُعد: الضلع الجديد يساوي الضلع الأصلي مضروبًا في النسبة المئوية مقسومًا على مئة، مقرَّبًا إلى أقرب بكسل صحيح. نسبة 50 تُنصِّف الصورة، و100 تُبقيها كما هي، و250 تكبّرها مرتين ونصف. كل من العرض والارتفاع يستخدمان المعامل نفسه، وهذا هو ما يحافظ على نسبة الأبعاد — باستثناء خطأ التقريب دون البكسل الذي لا مفر منه عندما تعجز وحدات البكسل الصحيحة عن التعبير عن النسبة الدقيقة. تتضمن النتيجة أيضًا عدد الميغابكسل للمخرَج، وهو الرقم الذي يتنبأ فعليًا بحجم الملف وتكلفة الذاكرة: التحجيم إلى 50 بالمئة لا يُنصِّف البكسلات بل يُربِّع تخفيضها إلى الربع، لأن المساحة تتغير مع مربع الضلعين. يجب أن تكون النسبة المئوية موجبة؛ فالصفر أو القيمة السالبة يُرفضان بوصفهما مدخلًا غير صالح بدلًا من إنتاج صورة بأبعاد صفرية بصمت، ولا يمكن لأي ضلع محسوب أن ينخفض عن بكسل واحد. كل مثال في هذه الصفحة وُلِّد بتشغيل المعالج الحقيقي، فما تقرؤه هو ما تحصل عليه.
أين يقع في سير عمل حقيقي
يستخدمه مطورو الواجهات الأمامية لحساب مدخلات srcset المتجاوبة: من صورة أصلية بعرض 2400 بكسل، تخرج النسخ بنسب 25 و50 و75 بالمئة بأعراض 600 و1200 و1800 بكسل، وتنتقل هذه الأرقام مباشرة إلى الترميز. ويستخدمه المصممون حين يطلب العميل صورة بنسبة 30 بالمئة لنشرة بريدية ويتعيّن على أحدهم التأكد من أن النتيجة لا تزال تفي بالحد الأدنى للعرض الذي يفرضه قالب البريد. ويستدعي مهندسو الواجهات الخلفية API داخل فحوص خط الأنابيب، لمقارنة الأبعاد التي أنتجها المُحجِّم بالأبعاد التي كان يفترض أن ينتجها، وإفشال المهمة عند اختلافهما. ولأن هذه القدرة حسابية بحتة دون أي تعامل مع الملفات، فلا تكلفة لتشغيلها مرات عديدة: نسخة المتصفح في هذه الصفحة مجانية وغير محدودة، ولا يتقاضى API سوى $0.002 لكل استدعاء عندما تُؤتمته. أما إذا كنت تحتاج إلى تحويل البكسلات نفسها لا حساب الأبعاد، فتلك قدرة أخرى؛ وُجدت هذه القدرة لتكون خطوة التخطيط دقيقة وسريعة ورخيصة بما يكفي لتشغيلها على كل صورة في الدفعة.
حالات الاستخدام
خطط لنسخ srcset المتجاوبة
احسب أعراض البكسل الدقيقة لنسخك بنسب 25% و50% و75% من الصورة الأصلية قبل كتابة الترميز.
تحقق من مهمة تحجيم جماعي
قارن الأبعاد التي أنتجها خط أنابيب المصغرات بالأبعاد التي تقول النسبة المئوية إنه كان يجب أن ينتجها، وأفشِل المهمة عند عدم التطابق.
أجب عن طلب العميل بدقة
صورة بنسبة 30 بالمئة لنشرة بريدية: تأكد من أن النتيجة لا تزال تفي بالحد الأدنى لعرض القالب قبل تصدير أي شيء.
الأسئلة الشائعة
كم التكلفة؟
الأداة مجانية وغير محدودة في متصفحك على هذه الصفحة. أما عبر API فتكلف $0.002 لكل استدعاء.
هل أرفع صورة؟
لا. تُقدم العرض والارتفاع والنسبة المئوية فقط. لا يُرفع شيء ولا يُعالَج ولا يُخزَّن.
كيف تُقرَّب الأبعاد؟
يُضرب كل ضلع في النسبة المئوية ويُقرَّب إلى أقرب بكسل صحيح. ولا يمكن أن تقل النتيجة عن بكسل واحد.
هل يمكنني تكبير الصورة وليس تصغيرها فقط؟
نعم. النسبة المئوية فوق 100 تكبّر الصورة: 200 تضاعف كل ضلع، و250 تحجّم بمرتين ونصف.
لماذا رُفضت نسبتي المئوية؟
يجب أن تكون النسبة المئوية رقمًا موجبًا. القيم الصفرية أو السالبة مدخل غير صالح، ولا يُحتسب الاستدعاء.
هل التحجيم إلى 50% يُنصِّف عدد البكسلات؟
لا. هو يُنصِّف كل ضلع، ما يُنزِّل العدد الإجمالي للبكسلات إلى الربع، لأن المساحة تتغير مع مربع الضلعين.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/image/resize-percentage \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"width":1920,"height":1080,"percentage":50}'const res = await fetch("https://api.kit.forhosting.com/image/resize-percentage", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"width": 1920,
"height": 1080,
"percentage": 50
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/resize-percentage",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"width": 1920,
"height": 1080,
"percentage": 50
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/resize-percentage", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"width":1920,"height":1080,"percentage":50}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"width":1920,"height":1080,"percentage":50}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/resize-percentage", 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,
"percentage": 50
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.resize_percentage",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |