Digitalmapia adalah situs dimana semua orang bisa menulis artikelnya sendiri. Klik "Login/Register untuk masuk, lalu klik "Tulis Artikel" untuk mulai menulis.

Cara melakukan manipulasi file image pada Laravel

Terkadang ketika meng-upload sebuah file image pada aplikasi web yang kita buat, kita perlu melakukan image resizing, image crop, menambahkan watermark dan sebagainya, agar gambar yang kita upload bisa terlihat pas saat ditampilkan.

Package Laravel untuk melakukan image resizing

Untuk melakukan image resizing kita akan menggunakan sebuah package bernama intervention/image. Untuk itu, tambahkan "intervention/image": "1.*" di bagian require pada file composer.json :

	"require": {
		"laravel/framework": "4.1.25",
		"intervention/image": "1.*",
	},

Setelah itu jalankan perintah composer update melalui command-line. Tunggu beberapa saat hingga package terinstal. Sebagai catatan, anda perlu terhubung ke internet ketika melakukan proses ini.

Setelah proses selesai, kemudian buka file app/config/app.php setelah itu pada bagian providers tambahkan kode berikut:

'Intervention\Image\ImageServiceProvider',

Kemudian, tambahkan pula kode berikut pada bagian aliases:

'Image'           => 'Intervention\Image\Facades\Image',

Setelah itu, package intervention/image sudah siap anda gunakan.

Melakukan image crop dengan intervention/image

Berikut adalah cara melakukan crop image dengan menggunakan intervention/image.

$file_path = 'uploads/image.png';

$img = Image::make($file_path);
$img->crop(500, 300);
$img->save($file_path);

perhatikan contoh diatas, misalnya kita mempunyai sebuah file gambar dengan nama image.png dimana file tersebut terletak pada folder public/uploads. Kemudian kita mempersiapkan file gambar tersebut untuk diproses. Untuk itu, kita menggunakan perintah $img = Image::make($file_path);. Setelah siap, gambar tersebut kemudian di-crop dengan ukuran 500×300. File gambar asli masih tersimpan dengan ukuran sebenarnya, yang barusan kita crop adalah file gambar kloningan dari gambar asli tersebut. Kita secara otomatis mengkloningnya ketika menjalankan perintah $img = Image::make($file_path);.

Setelah gambar hasil kloningan di crop, kemudian kita menyimpannya dengan perintah, $img->save($file_path);. Karena kita menyimpannya dengan path yang sama dengan gambar yang asli, maka gambar aslinya akan ditimpa dan hilang. Seolah-olah gambar asli tersebut yang kita crop. Jika, anda ingin gambar yang asli tetap ada, silahkan simpan dengan path yang berbeda.

Melakukan image resizing

Selain melakukan crop, anda juga bisa melakukan resize dengan cara sebagai berikut:

$file_path = 'uploads/image.png';

$img = Image::make($file_path);
$img->resize(500, 300);
$img->save($file_path);

 

Proses resize sangat mirip dengan crop, kita hanya mengganti $img->crop(500, 300); dengan $img->resize(500, 300);. Perbedaan resize dengan crop adalah, ketika menggunakan crop gambar akan dipotong menjadi berukuran sesuai dengan yang kita inginkan pada contoh diatas ukuran yang kita gunakan adalah 500 x 300. Karena, gambar tersebut dipotong, maka sebagaian dari gambar akan hilang.

Sedangkan, pada resize, gambar tidak dipotong sehingga tidak ada bagian gambar yang hilang. Namun demikian, apabila kita terlalu memaksakan dalam melakukan resize maka gambar akan menjadi terlihat gepeng. Misal, kita melakukan resize gambar berukuran 500 x 300 menjadi 500 x 50, tentu gambar akan menjadi terlihat tidak normal. Jika anda ingin melakukan resize, usahakan dengan dimensi yang sama, misal gambar berukuran 1000 x 500 di-resize menjadi 500 x 250 (1000 x 500 = 2:1, 500 x 250 = 2:1 —- sama-sama 2:1).

Menambahkan Watermark

Selain itu, anda juga bisa menambahkan watermark pada file gambar dengan menggunakan intervention/image. Caranya cukup mudah:

$file_path = 'uploads/image.png';
$watermark = 'uploads/watermark.png';

$img = Image::make($file_path);
$img->insert($watermark);
$img->save($file_path);

NOTE: dokumentasi lebih lengkapnya bisa anda lihat disini : http://image.intervention.io/

Semoga bermanfaat.

Laravel Wallpapper
  • Rifqi Awaludin

    kalau cara upload imagenya di laravel bagaimana?

  • Pramita Firnanda

    class ‘InterventionImageImageServiceProvider’ not found , saya pkk laravel versi 5