معالجة الصور برمجياً باستخدام PHP Jaquar

إن برامج مثل الفوتشوب (Photoshop) تسطيع دوماً أن تقوم بحل المشاكل المتعلقة بالصور من تغير الحجم، ضبط الشفافية وغيرها الكثير من المهام. ولكن علی المبرمجين التعامل مع أدوات ومكتبات أخرى لتحقيق أغراض مشابهة بعيداً عن البرامج التي لا يستطيعون استخدامها مباشرة في مشاريعهم البرمجية، تعرف على PHP Jagaur هذه الأداة التي سوف تعجبك بالتأكيد .
jaguar-hi

ما هي مكتبة PHP Jagaur؟

هي مكتبة لمعالجة الصور من (تغير للحجم ، علامات مائية ، ظبط شفافية ، …الخ) مكتوبة بلغة المبرمجة المحببة لقلوب الملايين PHP، مبنية على مكتبة معالجة الصور الشهيرة GDالمتوافرة لجميع لغات البرمجة تقريباً.

تنصيب Jagaur

سوف أقوم بتنصيب Jaquar عن طريق مدير الحزم البرمجية Composer و إذا لم تكن قد استخدمت Composer  من قبل فلا عليك ، يمكنك البدء دوماً من هذا الموضوع.

1 – أضف المكتبة إلى ملف composer.json

{
        "require-dev": {
                "hyyan/jaguar": "1.*"
        }
}

2 – اطلب من composer  تحميل المكتبة

composer install

فلسفة Jagaur

لا بد لك قبل البدء باستخدام Jaquar أن تفهم فلسفة Jaquar بمعالجة الصور برمجياً.

  1. إن Jagaur تمتلك نظام هندسة مبسط القائم على النقطة (Coordinate) والبعد (Dimension) والمربع (Box) الذي يتم إنشائه من النقطة والبعد.
  2. Jaquar  يستطيع فهم ألوان  RGBA و HEX  فقط.
  3. إن كل شي في Jaquar هو لوحة (Canvas) تستخدم لرسم عليها أو لإدراج الصور لتتم معالجتها.
  4. يستطيع Jaquar معالجة صور (JPG , PNG , GIF)  من خلال نظام قابل لتوسيع ليشمل صيغ أكثر.
  5. يمتلك Jaquar بيئة عمل لتطبيق الفلاتر على الصور تضم أكثر من 100 فلتر حالياً وهي قابلة للتوسيع.

الرسم باستخدام Jaquar

في هذا المثال سوق أقوم برسم تدرج لوني Gradient على لوحة وحفظ اللوحة بصيغة PNG

<?php

require_once "vendor/autoload.php";

use Jaguar\Canvas,
        Jaguar\Color\RGBColor,
        Jaguar\Dimension,
        Jaguar\Gradient\DiamondGradient;

// حجم اللوحة 
$dimesnsion = new Dimension(500, 500);  
    
// قم بإنشاء لوحة جديدة
$canvas = new Canvas($dimesnsion);

// قم بإنشاء لونين
$start = RGBColor::fromHex('#546');
$end = RGBColor::fromHex('#285');

// قم بإنشاء تدرجات للألون بين اللونين السابقين
$grad = new DiamondGradient($start, $end);

// ارسم جميع الألوان على اللوحة
$grad->generate($canvas);

// قم بحفظ اللوحة  في أي مكان تريده
$canvas->save('save.png');

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

save

يمكنك الإطلاع أكثر على أنواع التدرجات (Gradients) التي يمكنك رسمها باستخدام Jaquar من هنا.

 

استخدام فلاتر Jaquar

في هذا المثال سوف أقوم باستخدام فلتر Velvet لتطبيقه على صورة جاهزة

<?php

require_once "vendor/autoload.php";

use Jaguar\Canvas,
    Jaguar\Dimension,
    Jaguar\Action\Preset\Velvet;

// قم بإنشاء لوحة من صورة جاهزة
$canvas = new Canvas('input.jpg');

// قم بإنشاء قلتر جديد وتطبيقه على اللوحة
$poster = new Velvet();
$poster->apply($canvas);

$canvas->save('save.png')  // حفظ اللوحة
        ->show(); // أرسل الصورة مباشرة للمتصفح

وسوف تحصل عل النتيجة التالية:

أخيراً

إن Jaquar  أداة ممتعة الاستخدام وتساعد المطورين على التحكم بالصور بسهولة أكبر بعيداً عن تعقيدات البرامج الأخرى.

حيان أبو فخر

مطور ويب سوري. عاشق للموسيقى والبرمجة والكوميديا الارتجالية.

مواضيع الكاتبموقع الكاتب

لمتابعة الكاتب:
TwitterFacebook

One thought on “معالجة الصور برمجياً باستخدام PHP Jaquar

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *