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