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

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

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

ابدأ الدورة

العمل مع الصور في PHP: من الأساسيات إلى الأدوات الاحترافية



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



1. مكتبة GD - الأداة الأساسية في PHP



GD (Graphics Draw) هي مكتبة PHP مدمجة، متاحة "مباشرة من الصندوق" في معظم خدمات الاستضافة. تتيح إنشاء الصور وتغيير حجمها وإضافة تأثيرات عليها بتنسيقات JPEG و PNG و GIF و WebP.



الإمكانيات الأساسية لـ GD:

  • تغيير الأحجام والقص
  • إضافة النصوص والعلامات المائية
  • تطبيق فلاتر الألوان (تدرج رمادي، عكسي)
  • إنشاء صور من الصفر (رسوم بيانية، مخططات)


مثال: تغيير حجم الصورة مع الحفاظ على النسب

<?phpfunction resizeImage($srcFile, $dstFile, $maxWidth = 300, $maxHeight = 300) {    list($origWidth, $origHeight, $type) = getimagesize($srcFile);        // حساب الأبعاد الجديدة    $ratio = min($maxWidth / $origWidth, $maxHeight / $origHeight);    $newWidth = (int)($origWidth * $ratio);    $newHeight = (int)($origHeight * $ratio);        // إنشاء الصور    $srcImg = imagecreatefromstring(file_get_contents($srcFile));    $dstImg = imagecreatetruecolor($newWidth, $newHeight);        // النسخ مع تغيير الحجم    imagecopyresampled($dstImg, $srcImg, 0, 0, 0, 0, $newWidth, $newHeight, $origWidth, $origHeight);        // حفظ النتيجة    imagejpeg($dstImg, $dstFile, 85);    imagedestroy($srcImg);    imagedestroy($dstImg);}

// الاستخدامresizeImage('upload/photo.jpg', 'upload/thumb.jpg', 200, 200);?>


مزايا GD: لا تتطلب تثبيت إضافات إضافية، خفيفة، سريعة للعمليات البسيطة.
عيوبها: دعم محدود للتنسيقات (لا يوجد TIFF، PSD)، أداء ضعيف مع الشفافية في PNG-8.



2. Imagick - معالجة احترافية للصور



Imagick هي إضافة PHP توفر واجهة لمكتبة ImageMagick القوية. تدعم أكثر من 200 تنسيق ملف وتتيح تنفيذ عمليات معقدة: الرسوم المتحركة، تصحيح الألوان، العمل مع ملفات ICC.



التثبيت: sudo apt install php-imagick (لينكس) أو تفعيل الإضافة في ملف php.ini.



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

<?phpfunction addWatermark($imagePath, $watermarkPath, $outputPath) {    $image = new Imagick($imagePath);    $watermark = new Imagick($watermarkPath);        // تحديد موضع العلامة المائية (الزاوية اليمنى السفلية)    $x = $image->getImageWidth() - $watermark->getImageWidth() - 20;    $y = $image->getImageHeight() - $watermark->getImageHeight() - 20;        // التركيب مع الشفافية    $image->compositeImage($watermark, Imagick::COMPOSITE_OVER, $x, $y);        // الحفظ    $image->writeImage($outputPath);        // تنظيف الذاكرة    $image->clear();    $watermark->clear();}

addWatermark('photo.jpg', 'logo.png', 'photo_watermarked.jpg');?>


مزايا Imagick: وظائف غنية، أداء عالي في العمليات المعقدة، دعم الرسوميات المتجهة (SVG).
عيوبها: تتطلب تثبيتًا على الخادم، تستهلك ذاكرة أكبر من GD.



3. Intervention Image - غلاف مريح لـ Laravel وغيره



Intervention Image هي مكتبة PHP شائعة توفر واجهة برمجة تطبيقات موحدة للعمل

توصيات