1 min read

Manipulasi Gambar dengan Intervention/Image

Walaupun judulnya manipulasi sebenarnya pada tulisan ini tidak lebih dari sekadar mengubah ukuran gambar, sedangkan untuk manipulasi-manipulasi lainnya mungkin di waktu yang lain (*kalo ada niat). Framework yang saya gunakan saat mencoba hal ini adalah Laravel 5.5 dengan paket Intervention/Image versi 2.4. Adapun requirements yang dibutuhkan agar berhasil memanipulasi gambar :

1. Versi PHP 5.4 atau lebih
2. Ektensi PHP Fileinfo
3. Library Manipulasi Gambar bisa GD Library atau Imagemick ( saya sendiri menggunakan GD Library versi 2.2)

 Install intervention/image
Pada root folder aplikasi tambahkan paket intervention/image menggunakan perintah composer berikut

composer require intervention/image

Tunggu sampai selesai.

Setelah selesai buka berkas config/app.php lalu tambahkan baris berikut di bagian providers

Intervention\Image\ImageServiceProvider::class

Dan baris berikut ini di bagian alias`

Image' => Intervention\Image\Facades\Image::class

Setelah itu publish berkas konfigurasi dengan perintah ini di terminal

php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"

Jika terjadi kendala pada saat publish lakukan perintah ini terlebih dahulu.

php artisan config:cache

Pemasangan paket intervention/image selesai.

Penggunaan di Laravel

Setelah paket terpasang, panggil paket intervention/image di controller

<?php
namsespace App\Http\Controllers;

use Illuminate\Http\Request;
use Image;

class HomeController extends Controller
{

 public function upload(Request $request)
{
{
}

Pada fungsi upload gunakan fungsi sebagai berikut :

public function upload(Request $request)
{ 
  if ($request->hasFile('foto')) {
          $file = $request->file('foto');
          $path = $file->hashName('foto');
          $filename = strtotime("now").'.'.$request->foto->extension();
          $image = Image::make($file)->resize(400, 300);
          $path =  storage_path();          
        $image->save($path."/app/foto/".$filename);      
  }
}

 

Saya mencoba dengan gambar asli berukuran 3.8 MB yang setelah menggunakan fungsi _resize_ foto berubah menjadi 25,7KB.


==Referensi==
http://image.intervention.io/use/uploads