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