Di saat mengembangkan aplikasi, ada kalanya kamu dihadapkan pada kasus membuat thumbnail gambar, terlebih aplikasi tersebut mendukung gallery foto. PHP mendukung fungsi-fungsi untuk pemprosesan gambar di antaranya GD atau ImageMagick. Pada tulisan ini, kita akan mencoba menangani dan memanipulasi gambar lebih mudah dan ekspresif dengan menggunakan pustaka bernama Intervention Image.
Intervention Image menyediakan cara yang lebih mudah dan ekspresif untuk membuat, mengedit, dan menyusun gambar. Pustaka ini menggunakan fungsi-fungsi pemprosesan gambar yang ada di PHP, saat ini hanya mendukung GD dan ImageMagick.
Berikut adalah perintah untuk instalasi menggunakan Composer:
$ php composer.phar require intervention/image
Alternatif lain, kamu bisa download kodenya dari Github: https://github.com/Intervention/image.
Persyaratan Sistem
Sebelum menggunakan Intervention Image, pastikan kamu memenuhi syarat sebagai berikut:
- PHP >= 5.4
- Fileinfo Extension
- Pustaka PHP GD (>=2.0) atau ekstensi PHP Imagick (>=6.5.7)
Penggunaan
Pertama yang harus dilakukan adalah menyertakan file autoload Composer 'vendor/autoload.php'
di awal skrip PHP. Berikut adalah contoh penggunaan:
// menyertakan autoload composer require 'vendor/autoload.php'; // impor Manager Class dari Intervention Image use Intervention\Image\ImageManager; // membuat instance image manager dengan menggunakan driver GD PHP $manager = new ImageManager(array('driver' => 'imagick')); // terakhir membuat instance gambar $image = $manager->make('public/foo.jpg')->resize(300, 200);
Selain cara di atas, kamu juga dapat menggunakan method statik sebagai berikut:
// menyertakan autoload composer require 'vendor/autoload.php'; // impor Manager Class dari Intervention Image use Intervention\Image\ImageManagerStatic as Image; // Konfigurasi driver image PHP (secara default: gd) Image::configure(['driver' => 'gd']); // Siap digunakan ... $image = Image::make('public/foo.jpg')->resize(300, 200);
Mengintegrasikan di Laravel
Jika kamu menggunakan framework Laravel, Intervention Image mendukung pengintegrasikan sebagai pustaka di Laravel. Kita dapat memasukkannya sebagai Service Provider dan menggunakan Facade yang sudah disediakan.
Tambahkan Service Provider pada array $providers
di config/app.php
:
Intervention\Image\ImageServiceProvider::class
Kemudian tambahkan Facade pada array $aliases:
'Image' => Intervention\Image\Facades\Image::class
Langkah terakhir adalah memuat konfigurasi di Laravel 5. Secara default, Intervention Image menggunakan ekstensi PHP GD untuk memproses gambar, jika kemu ingin mengganinya dengan menggunakan Imagick, you dapat mengambil file konfigurasi ke dalam aplikasi dengan menjalankan perintah Artisan:
$ php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"
Berikut contoh penggunaan:
Route::get('/image/foo-thumbnail', function() { $img = Image::make('foo.jpg')->resize(300, 200); return $img->response('jpg'); });
Untuk penggunaan lebih lanjut, silahkan kunjungi: http://image.intervention.io/