Cara resize gambar yang telah di upload
Terkadang dalam melakukan teknik upload gambar pada PHP kita menemui kendala yaitu ukuran gambar yang terlalu besar .Tentu saja ini akan membuat memori atau web kita berjalan dengan lambat nantinya saat gambar itu ditampilkan. Berikut ini adalah teknik resize gambar yang di gabung dengan teknik upload foto.
Dalam tutorial berikut batas maksimal upload filenya adalah 8mb/foto
Siapkan sebuah file index.php dan sebuah folder tempat kita memindahkan gambar hasil uploadnya beri nama folder “image”.
Script index.php
<?php if(isset($_POST['upload'])){ $nama = $_FILES['gambar']['name']; $size = $_FILES['gambar']['size']; $error = $_FILES['gambar']['error']; $asal = $_FILES['gambar']['tmp_name']; $lokasi = $nama; $format = pathinfo($nama, PATHINFO_EXTENSION); move_uploaded_file($asal, "image/".$nama); $asli ="image/".$nama; $gambar_asli = imagecreatefromjpeg ($asli); $lebar_asli = imageSX($gambar_asli); $tinggi_asli = imageSY($gambar_asli); $lebar_baru = $lebar_asli/2; $tinggi_baru = $tinggi_asli/2; $img = imagecreatetruecolor($lebar_baru, $tinggi_baru); imagecopyresampled($img, $gambar_asli, 0, 0, 0, 0, $lebar_baru, $tinggi_baru, $lebar_asli, $tinggi_asli); imagejpeg($img, $asli . $nama); imagedestroy($gambar_asli); imagedestroy($img); $hapus= unlink("$asli"); } ?> <form action ="" method="POST" enctype="multipart/form-data"> <input type="file" name="gambar"> <input type="submit" name="upload" value="upload"/> </form>
Penjelasan
if(isset($_POST['upload'])) //melakukan perintah POST saat tombol ‘upload’ ditekan. $nama = $_FILES['gambar']['name']; $size = $_FILES['gambar']['size']; $error = $_FILES['gambar']['error']; $asal = $_FILES['gambar']['tmp_name']; $lokasi = $nama; $format = pathinfo($nama, PATHINFO_EXTENSION); //membuat variabel atau mendefinisikan dari direktori gambar yang akan di upload move_uploaded_file($asal, "image/".$nama); $asli ="image/".$nama; // simpan gambar dengan ukuran asli ke folder image $gambar_asli = imagecreatefromjpeg ($asli); $lebar_asli = imageSX($gambar_asli); tinggi_asli = imageSY($gambar_asli); //berfungsi untuk memanggil identitas file, ukuran dan tinggi aslinya dari gambar tersebut $lebar_baru = $lebar_asli/2; $tinggi_baru = $tinggi_asli/2; //merubah ukuran gambar dengan ukuran baru, dimana ukuran gambar yang lama masing-masing tinggi dan lebarnya di bagi 2 $img = imagecreatetruecolor($lebar_baru, $tinggi_baru); imagecopyresampled($img, $gambar_asli, 0, 0, 0, 0, $lebar_baru, $tinggi_baru, $lebar_asli, $tinggi_asli); //proses perubahan ukuran gambar imagejpeg($img, $asli . $nama); //menyimpan gambar baru yang ukurannya telah di ubah imagedestroy($gambar_asli); imagedestroy($img); $hapus = unlink("$asli"); //menghapus gambar yang lama
Jika berhasil kalian akan mendapati foto atau gambar dalam ukuran yang 2x lipat lebih kecil di folder image kalian. Semoga bermanfaat