Intervention Image لـ PHP: دليل شامل مع أمثلة

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

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

ابدأ الدورة

ما هو Intervention Image ولماذا نحتاجه؟

\n\n

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

\n\n

الهدف الرئيسي للمكتبة هو تجريد تعقيد العمل مع GD و Imagick (امتدادي PHP الرئيسيين للعمل مع الصور) وتقديم API موحد ونظيف. بدلاً من كتابة عشرات الأسطر من الكود لكل عملية، يمكنك القيام بذلك بسطر واحد.

\n\n

لماذا نحتاجها؟

\n
    \n
  • البساطة: بناء جملة بديهي يشبه jQuery.
  • \n
  • المرونة: تعمل مع كل من GD و Imagick (الخيار لك).
  • \n
  • الوظائف: تدعم جميع العمليات الأساسية: تغيير الحجم، الاقتصاص، التدوير، إضافة النص والصور، المرشحات (أبيض وأسود، بني داكن، تمويه، إلخ).
  • \n
  • الأمان: تمنع الثغرات الأمنية النموذجية المرتبطة بتحميل الصور.
  • \n
  • التوافق: تعمل مع الأطر الشهيرة (Laravel، Symfony، CakePHP) وأنظمة إدارة المحتوى (WordPress، Joomla).
  • \n
\n\n

إذا كنت بحاجة إلى إنشاء صورة مصغرة للصورة الرمزية، أو ضغط صورة للويب، أو إضافة شعار، أو تطبيق تأثير "الصورة القديمة" — فإن Intervention Image ستتعامل مع ذلك في ثوانٍ معدودة.

\n\n

التثبيت

\n\n

يتم تثبيت Intervention Image عبر Composer — مدير الحزم القياسي لـ PHP.

\n\n

الخطوة 1: تأكد من تثبيت Composer لديك.

\n

إذا لم يكن مثبتًا، قم بتنزيله من getcomposer.org.

\n\n

الخطوة 2: قم بتثبيت المكتبة.

\n

افتح الطرفية في جذر مشروعك ونفذ الأمر التالي:

\n\n
composer require intervention/image
\n\n

سيقوم هذا الأمر بتنزيل المكتبة وجميع تبعياتها في مجلد vendor.

\n\n

الخطوة 3: قم بتضمين أداة التحميل التلقائي لـ Composer.

\n

في سكريبت PHP الخاص بك (عادةً في البداية)، أضف السطر التالي:

\n\n
require_once 'vendor/autoload.php';
\n\n

هام: لكي تعمل المكتبة، يجب أن يكون أحد الامتدادات مثبتًا على الخادم: gd أو imagick. عادةً ما يكون GD مضمنًا افتراضيًا. إذا كنت تستخدم Imagick، فتأكد من تثبيته وتفعيله في ملف php.ini.

\n\n

التثبيت في Laravel (تلقائي):

\n

في Laravel 5.5+ يتم تسجيل المكتبة تلقائيًا. في الإصدارات الأقدم، تحتاج إلى إضافة موفر الخدمة والواجهة في config/app.php:

\n\n
'providers' => [\n    // ...\n    Intervention\\Image\\ImageServiceProvider::class,\n],\n\n'aliases' => [\n    // ...\n    'Image' => Intervention\\Image\\Facades\\Image::class,\n],\n
\n\n

بداية سريعة مع مثال كود

\n\n

دعنا ننتقل مباشرة إلى العمل. لنفترض أن لدينا صورة photo.jpg في نفس مجلد السكريبت. نريد تغيير حجمها إلى 300 بكسل في العرض، مع الحفاظ على النسب، وحفظها باسم thumb.jpg.

\n\n
<?php\nrequire_once 'vendor/autoload.php';\n\nuse Intervention\\Image\\ImageManager;\n\n// إنشاء مدير صور مع برنامج التشغيل 'gd' (افتراضي)\n$manager = new ImageManager(['driver' => 'gd']);\n\n// فتح الملف\n$image = $manager->make('photo.jpg');\n\n// تغيير الحجم: العرض 300، الارتفاع تلقائيًا (بشكل متناسب)\n$image->resize(300, null, function ($constraint) {\n    $constraint->aspectRatio(); // الحفاظ على النسب\n});\n\n// حفظ النتيجة\n$image->save('thumb.jpg');\n\necho "تم إنشاء الصورة المصغرة!";\n?>\n
\n\n

تحليل الكود:

\n
    \n
  1. new ImageManager(['driver' => 'g
  2. \n

توصيات