العمل مع الصور في PHP: مكتبات GD وImagick

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

العمل مع الصور في PHP: نظرة عامة على مكتبات GD وImagick



معالجة الصور هي إحدى المهام الشائعة في تطوير الويب. في PHP هناك مكتبتان رئيسيتان للعمل مع الرسوميات: GD (مضمنة) وImagick (غلاف لـ ImageMagick). في هذه المقالة سنستعرض إمكانياتهما، التثبيت والأمثلة العملية.



مكتبة GD

GD هي إضافة PHP قياسية، متوفرة في معظم خدمات الاستضافة. تسمح بإنشاء وتعديل وحفظ الصور بتنسيقات JPEG، PNG، GIF، WEBP.



التثبيت

في Ubuntu/Debian:

sudo apt install php-gdsudo systemctl restart apache2


في Windows — قم بإلغاء تعليق السطر extension=gd في ملف php.ini.



الدوال الأساسية في GD

  • imagecreatefromjpeg()، imagecreatefrompng() — تحميل الصورة
  • imagesx()، imagesy() — الحصول على العرض والارتفاع
  • imagecopyresampled() — تغيير الحجم مع إعادة العينة
  • imagefilter() — تطبيق المرشحات (التمويه، السالب)
  • imagettftext() — نص بخط TrueType
  • imagejpeg()، imagepng() — حفظ النتيجة


مثال 1: تغيير حجم الصورة

<?php$src = 'photo.jpg';$dest = 'thumb.jpg';$newWidth = 300;

// تحميل الصورة الأصلية$img = imagecreatefromjpeg($src);$width = imagesx($img);$height = imagesy($img);

// حساب الارتفاع الجديد بشكل متناسب$newHeight = intval($height * $newWidth / $width);

// إنشاء صورة جديدة$thumb = imagecreatetruecolor($newWidth, $newHeight);imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);

// الحفظimagejpeg($thumb, $dest, 85);imagedestroy($img);imagedestroy($thumb);echo "تم: $dest";?>


مثال 2: إضافة علامة مائية

<?php$mainImg = imagecreatefromjpeg('background.jpg');$watermark = imagecreatefrompng('logo.png');

// الحصول على الأبعاد$mW = imagesx($mainImg);$mH = imagesy($mainImg);$wW = imagesx($watermark);$wH = imagesy($watermark);

// الموضع — الزاوية السفلية اليمنى بهامش 10px$dstX = $mW - $wW - 10;$dstY = $mH - $wH - 10;

// نسخ العلامة المائية مع الشفافيةimagecopy($mainImg, $watermark, $dstX, $dstY, 0, 0, $wW, $wH);

// الحفظimagepng($mainImg, 'result.png');imagedestroy($mainImg);imagedestroy($watermark);?>


مكتبة Imagick

Imagick هي غلاف كائني التوجه للأداة القوية ImageMagick. تدعم أكثر من 200 تنسيق، تحويلات معقدة، العمل مع PDF، الرسوم المتحركة وملفات الألوان.



التثبيت

sudo apt install imagemagick php-imagicksudo systemctl restart apache2


التحقق من التثبيت:

<?php phpinfo(); ?>

ابحث عن قسم imagick.



الفئات والطرق الأساسية

  • Imagick — الفئة الرئيسية للعمل مع الصورة
  • readImage() — تحميل الملف
  • resizeImage() — تغيير الحجم
  • cropImage() — القص
  • compositeImage() — تركيب الصور
  • blurImage() — التمويه
  • setImageFormat() — تحويل التنسيق


مثال 3: تغيير الحجم والقص

<?php$image = new Imagick('photo.jpg');

// تغيير الحجم إلى 800x600 مع الحفاظ على النسبة$image->resizeImage(800, 600, Imagick::FILTER_LANCZOS, 1, true);

// قص الجزء المركزي 400x400$width = $image->getImageWidth();$height = $image->getImageHeight();$x = ($width - 400) / 2;$y

توصيات