mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
Renames 18 ambiguous or hard-to-search tool names so image tools self-qualify like the other modalities ("Compress" becomes "Compress Image"), and cleans up a few awkward names. Propagated across search (constants.ts), display (en.ts + 20 locales), the OpenAPI base spec + 20 locale specs, and the docs tool-page headings in 21 languages. Removes the duplicate "Normalize Audio" summary shared by the video and audio endpoints. Tool ids and routes are unchanged, so no API paths or bookmarks break.
3.5 KiB
3.5 KiB
description, i18n_source_hash, i18n_provenance, i18n_output_hash
| description | i18n_source_hash | i18n_provenance | i18n_output_hash |
|---|---|---|---|
| تغيير حجم الصور بالبكسل أو بالنسبة المئوية أو باستخدام أوضاع الملاءمة. | 53866e8266b8 | human | 303426ab1e7d |
تغيير حجم الصورة
غيّر حجم الصور بتحديد أبعاد بكسل دقيقة، أو معامل قياس بالنسبة المئوية، أو وضع ملاءمة يتحكم في كيفية تكيّف الصورة مع الأبعاد المستهدفة.
نقطة نهاية الـ API
POST /api/v1/tools/image/resize
يقبل بيانات نموذج متعدد الأجزاء مع ملف صورة وحقل JSON باسم settings.
المعاملات
| المعامل | النوع | مطلوب | القيمة الافتراضية | الوصف |
|---|---|---|---|---|
| width | integer | لا | - | العرض المستهدف بالبكسل (أقصى 16383) |
| height | integer | لا | - | الارتفاع المستهدف بالبكسل (أقصى 16383) |
| fit | string | لا | "contain" |
كيف تلائم الصورة الأبعاد: contain، cover، fill، inside، outside |
| withoutEnlargement | boolean | لا | false |
منع التكبير إذا كانت الصورة أصغر من الهدف |
| percentage | number | لا | - | القياس بالنسبة المئوية (مثل 50 لنصف الحجم) |
يجب توفير واحد على الأقل من width أو height أو percentage.
أوضاع الملاءمة
- contain - تغيير الحجم للملاءمة ضمن الأبعاد مع الحفاظ على نسبة العرض إلى الارتفاع (قد يترك مساحة فارغة)
- cover - تغيير الحجم لتغطية الأبعاد مع الحفاظ على نسبة العرض إلى الارتفاع (قد يقص)
- fill - التمدد لمطابقة الأبعاد بالضبط (يتجاهل نسبة العرض إلى الارتفاع)
- inside - مثل
contain، لكنه يُصغّر فقط ولا يُكبّر أبدًا - outside - مثل
cover، لكنه يُصغّر فقط ولا يُكبّر أبدًا
مثال على الطلب
curl -X POST http://localhost:1349/api/v1/tools/image/resize \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \
-F 'settings={"width": 800, "height": 600, "fit": "contain"}'
تغيير الحجم بالنسبة المئوية:
curl -X POST http://localhost:1349/api/v1/tools/image/resize \
-H "Authorization: Bearer si_your-api-key" \
-F "file=@photo.jpg" \
-F 'settings={"percentage": 50}'
مثال على الاستجابة
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/photo.jpg",
"originalSize": 2450000,
"processedSize": 980000
}
ملاحظات
- أقصى بُعد هو 16383 بكسل على أي من المحورين (حد Sharp/libvips).
- تطابق صيغة الإخراج صيغة الإدخال. تُفكّ ترميزات مدخلات HEIC وRAW وPSD وSVG تلقائيًا قبل المعالجة.
- يُطبَّق اتجاه EXIF تلقائيًا قبل تغيير الحجم.
- تُعد الراية
withoutEnlargementمفيدة في المعالجة الدفعية حيث قد تكون بعض الصور أصغر بالفعل من الهدف.