دليل استخدام أدوات معالجة الصور المدمجة في سطر الأوامر مع ServBay
يُعد ServBay بيئة تطوير ويب محلية مصممة خصيصًا للمطورين، حيث يوفر ليس فقط منصات تشغيل لغات متعددة وقواعد بيانات متنوعة، بل يدمج أيضًا مجموعة قوية من أدوات معالجة الصور عبر سطر الأوامر. هذه الأدوات ضرورية للمهام الشائعة في تطوير الويب مثل تحويل صيغ الصور، وضغطها وتحسينها، وتغيير حجمها، وإضافة العلامات المائية وغير ذلك. في هذا الدليل نستعرض الأدوات الأساسية المدمجة مع ServBay ونشارك بعض المهارات العملية في سطر الأوامر لمساعدتك على معالجة الصور بكفاءة في بيئة التطوير المحلية.
المتطلبات الأساسية
تأكد من أنك قمت بتثبيت ServBay وتشغيله بشكل صحيح. جميع الأدوات المذكورة أدناه متوفرة بالفعل ضمن ServBay ولا تحتاج لأي تثبيت أو إعداد إضافي.
أدوات معالجة الصور الشائعة
ServBay يأتي مُثبتًا مسبقًا بالأدوات التالية لمعالجة الصور عبر سطر الأوامر:
ImageMagick
ImageMagick هي مجموعة أدوات ومكتبات شهيرة وواسعة الإمكانيات لمعالجة الصور، تدعم تقريبًا كافة صيغ الصور الأساسية. غالبًا ما يلجأ المطورون إليها لتحويل الصيغ، وتغيير الأبعاد، وإجراء عمليات معالجة متقدمة على الصور.
الاستخدام الأساسي
تحويل صيغة الصورة لتحويل صورة JPEG إلى PNG:
bashmagick convert input.jpg output.png1تغيير حجم الصورة لتغيير أبعاد الصورة إلى 300x300 بكسل:
bashmagick convert input.jpg -resize 300x300 output.jpg1إضافة علامة مائية لإضافة علامة مائية نصية "ServBay" في الركن السفلي الأيمن للصورة:
bashmagick convert input.jpg -gravity southeast -draw "text 10,10 'ServBay'" output.jpg1
cwebp
WebP هو تنسيق صور حديث من تطوير Google، يهدف لتقديم خيارات ضغط (جودة وفقد) أفضل من JPEG وPNG. أداة cwebp الرسمية تتيح تحويل الصور من صيغ أخرى إلى WebP بسهولة عبر سطر الأوامر.
الاستخدام الأساسي
تحويل صورة JPEG إلى صيغة WebP
bashcwebp input.jpg -o output.webp1تحويل صورة PNG إلى صيغة WebP
bashcwebp input.png -o output.webp1تحديد جودة الضغط حدد جودة الضغط (من 0 إلى 100) لمخرجات WebP عبر خيار
-q، مثلاً لجعلها 80:bashcwebp -q 80 input.jpg -o output.webp1
jpegtran
تُعد أداة jpegtran جزءًا من مكتبة libjpeg، وهي متخصصة في المعالجة غير الفاقدة لصور JPEG مثل التدوير، والانعكاس، والقص دون فقدان الجودة—ما يجعلها مثالية للتحسين أو ضبط الاتجاه.
الاستخدام الأساسي
تدوير صورة JPEG لتدوير الصورة 90 درجة بدون فقدان جودة:
bashjpegtran -rotate 90 input.jpg > output.jpg1ملاحظة: يتم استخدام إعادة التوجيه
>هنا لكتابة النتيجة في ملف.انعكاس صورة JPEG أفقيًا
bashjpegtran -flip horizontal input.jpg > output.jpg1
djpeg
djpeg أداة أخرى ضمن libjpeg تُستخدم لفك ضغط ملفات JPEG وتحويلها إلى بيانات بكسل خام مثل صيغة PPM (Portable Pixmap). هذا مفيد في حالات إجراء معالجة دقيقة أو تحويل لاحق لصيغ غير JPEG.
الاستخدام الأساسي
- فك ضغط JPEG إلى صيغة PPMbash
djpeg input.jpg > output.ppm1
cjpeg
cjpeg هي الأداة المعاكسة لـ djpeg—حيث تقوم بضغط وتحويل البيانات الخام (مثل PPM) إلى صور JPEG. غالبًا ما تُستخدم مع djpeg أو مع أدوات أخرى تُنتج بيانات صور خام.
الاستخدام الأساسي
- ضغط صورة PPM إلى صيغة JPEGbash
cjpeg input.ppm > output.jpg1
img2webp
img2webp هي أداة ضمن حزمة WebP صممت لدمج سلسلة من الصور الثابتة (PNG، JPEG، الخ) وتحويلها إلى صورة WebP متحركة—مشابهة لعمل صور GIF.
الاستخدام الأساسي
- دمج صور متعددة في WebP متحرك لدمج الملفات
frame1.png,frame2.png,frame3.pngفي ملف WebP متحرك واحد باسمoutput.webp:bashimg2webp -o output.webp frame1.png frame2.png frame3.png1
حالات عملية ونصائح متقدمة
باستخدام هذه الأدوات، يمكن أتمتة عمليات معالجة الصور المعقدة بسهولة. فيما يلي بعض الأمثلة العملية:
تغيير حجم مجموعة صور دفعة واحدة
باستخدام ImageMagick مع برمجة Bash بسيطة، يمكنك تغيير حجم جميع صور JPEG في مجلد حاليًا دفعة واحدة. مثلاً، لتعديل عرض الصور إلى 300 بكسل مع حفظ التناسب الطولي:
bash
# اذهب إلى دليل الصور، مثلاً: cd /Applications/ServBay/www/your-project/images
for file in *.jpg; do
# استخدم magick convert لتغيير الحجم، -resize 300x تحافظ على التناسب الطولي
# يمكن الحفظ بنفس الاسم أو في مجلد جديد لتجنب الاستبدال
magick convert "$file" -resize 300x "${file%.*}-resized.jpg"
echo "Processed: $file -> ${file%.*}-resized.jpg"
done1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
ملاحظة: ${file%.*} هو خاصية في shell لإزالة امتداد اسم الملف.
تحويل الصيغ وتحسين الصور دفعة واحدة
يمكنك تحويل صور PNG وJPEG التي تبدأ باسم servbay إلى WebP وتحديد مستوى الجودة 45، دفعة واحدة باستخدام cwebp:
bash
# اذهب إلى دليل الصور
for file in servbay*.jpg servbay*.png; do
# إنشاء اسم الملف الناتج بامتداد webp
output_file="${file%.*}.webp"
# التحويل باستخدام cwebp مع تحديد الجودة بـ -q
cwebp -q 45 "$file" -o "$output_file"
echo "Converted: $file -> $output_file (Quality 45)"
done1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
إضافة علامة مائية لجميع الصور دفعة واحدة
باستخدام ImageMagick وBash، يمكنك إضافة علامة مائية "ServBay Demo" إلى جميع صور JPEG في المجلد الحالي دفعة واحدة:
bash
# اذهب إلى دليل الصور
for file in *.jpg; do
# إضافة علامة مائية نصية في الزاوية السفلية اليمنى
# حفظ الصورة الناتجة باسم جديد
magick convert "$file" -gravity southeast -pointsize 20 -fill white -annotate +10+10 'ServBay Demo' "${file%.*}-watermarked.jpg"
echo "Watermarked: $file -> ${file%.*}-watermarked.jpg"
done1
2
3
4
5
6
7
2
3
4
5
6
7
تحسين حجم صور JPEG
استخدم jpegtran لتحسين صور JPEG بدون فقدان جودة، وحذف البيانات غير الضرورية، وتحويلها إلى JPEG تدرجي (progressive JPEG) لعرض أسرع في الويب:
bash
jpegtran -optimize -progressive input.jpg > output.jpg1
ملاحظة: أداة jpegtran تخرج النتائج إلى المخرجات القياسية لذا يجب إعادة التوجيه إلى ملف.
ملاحظات هامة
- متغير PATH: يقوم ServBay تلقائيًا بإضافة مسارات الأدوات المدمجة إلى متغير PATH في النظام، بحيث يمكنك استخدام الأوامر مثل
magick,cwebp,jpegtranمباشرة من الطرفية. إذا واجهت مشكلة في العثور على الأوامر تأكد من تشغيل ServBay بالشكل الصحيح أو من ضبط PATH في النظام لديك. - التعامل مع الأخطاء: عادة ما تُظهر هذه الأدوات رسائل خطأ عند الفشل في التنفيذ. عند كتابة سكربتات لمعالجة صور كثيرة، يفضل إضافة تحقق أو تعامل مع الأخطاء.
- استبدال الملفات: العديد من الأدوات تستبدل الملفات الناتجة افتراضيًا. عند العمل على دفعات كبيرة، من الأفضل الحفظ في مجلد جديد أو بأسماء مختلفة ثم الإجراء على النسخ النهائية لاحقاً.
الأسئلة الشائعة (FAQ)
س: عندما أكتب أمر magick في الطرفية تظهر رسالة "الأمر غير موجود"، ماذا أفعل؟
ج: تأكد أولاً من ضبط متغيرات البيئة لـ ServBay بشكل صحيح. إذا استمرت المشكلة، جرب فتح قائمة “الإعدادات” في ServBay ثم “أدوات سطر الأوامر” واضبط ذلك لكل من zsh وbash، وبعدها أعد تشغيل الطرفية.
س: ما هي صيغ الصور التي تدعمها هذه الأدوات؟
ج: يدعم ImageMagick مئات الصيغ من بينها: JPEG, PNG, GIF, TIFF, BMP, SVG وغيرها. أداة cwebp مخصصة لصيغة WebP. أما jpegtran,djpeg,cjpeg فهي متخصصة بتعامل مع ملفات JPEG والصيغ الخام ذات العلاقة. لمزيد من التفاصيل راجع التوثيق الرسمي لكل أداة.
س: هل يمكنني استدعاء هذه الأدوات من سكربتات PHP أو Python أو غيرها؟
ج: نعم، يمكنك استدعاء هذه الأدوات من سكربتات PHP (باستخدام exec(), shell_exec(), proc_open())، أو Python (مكتبة subprocess)، أو Node.js (child_process) وغيرها لمعالجة الصور التي يتم رفعها أو تنفيذ مهام أخرى ضمن بيئة ServBay.
الخلاصة
يوفر لك ServBay، كحل تطوير متكامل، أدوات سطر أوامر قوية لمعالجة الصور (مثل ImageMagick وcwebp وjpegtran). من خلال هذه الأدوات يمكنك تبسيط عمليات تحويل الصيغ، الضغط، التحسين، والأتمتة دفعة واحدة دون الحاجة لأي تثبيت أو إعداد إضافي. إتقان استخدام هذه الأدوات سيُحسن بشكل ملحوظ من كفاءتك ومرونتك في التعامل مع الصور في مشاريع تطوير الويب. ابدأ الآن باستكشاف هذه الأدوات الرائعة في بيئة ServBay!
