Media Sharing Informasi Bahasa Pemrogramman

Upload Gambar Dengan Teknik Resize Resolution

Tidak ada komentar
Selamat Malam Sahabat, kali ini masih sama dengan tutorial-tutorial sebelumnya, masih membahas tentang image processing pada PHP. "Upload Gambar dengan teknik Resize Resolution", langkah-langkah pada teknik ini sebagai berikut :

  1. Upload Gambar Asli Dengan Resolusi Original
  2. Membuat Salinan Gambar dengan Costumize Resolution
  3. Menghapus gambar asli dari direktori
Oke langsung aja kita siapkan kebutuhan-kebutuhan. Disini hanya menggunakan sebuah file index.php dan sebuah folder "image"
Upload_Image/
   ---image/
   ---index.php

folder image digunakan untuk penyimpanan gambar setelah dilakukan proses upload.

file index.php sebagai berikut :
<?php
function UploadImageResize($new_name,$file,$dir,$width){
   //direktori gambar
   $vdir_upload = $dir;
   $vfile_upload = $vdir_upload . $_FILES[''.$file.'']["name"];

   //Simpan gambar dalam ukuran sebenarnya
   move_uploaded_file($_FILES[''.$file.'']["tmp_name"], $dir.$_FILES[''.$file.'']["name"]);

   //identitas file asli
   $im_src = imagecreatefromjpeg($vfile_upload);
   $src_width = imageSX($im_src);
   $src_height = imageSY($im_src);

   //Set ukuran gambar hasil perubahan
   $dst_width = $width;
   $dst_height = ($dst_width/$src_width)*$src_height;

   //proses perubahan ukuran
   $im = imagecreatetruecolor($dst_width,$dst_height);
   imagecopyresampled($im, $im_src, 0, 0, 0, 0, $dst_width, $dst_height, $src_width, $src_height);

   //Simpan gambar
   imagejpeg($im,$vdir_upload . $new_name,100);
   
   //Hapus gambar di memori komputer
   imagedestroy($im_src);
   imagedestroy($im);
   $remove_small = unlink("$vfile_upload");
 }
?>
diatas terdapat sebuah fungsi dengan nama UploadImageResize($new_name,$file,$dir,$width) yang terdiri beberapa parameter berikut :

  • $new_name = adalah variable nama file baru dari sebuah gambar 
  • $file = adalah name dari input dengan type file 
  • $dir = adalah direktory penyimpanan gambar
  • $width = adalah variable yang berfungsi mengatur ukuran kompresi gambar
dengan fungsi tersebut, program akan melakukan proses upload image, kemudian setelah berhasil diupload, program akan membaca dimensi asli dari gambar yang diupload dengan fungsi berikut


//identitas file asli
$im_src = imagecreatefromjpeg($vfile_upload);
$src_width = imageSX($im_src);
$src_height = imageSY($im_src);

fungsi imagecreatefromjpeg berfungsi membuat salinan gambar dari file asli, fungsi imageSX berfungsi mengambil lebar gambar, fungsi imageSY mengambil tinggi gambar. setelah mendapatkan informasi asli dari sebuah gambar, langkah selanjutnya adalah melakukan perhitungan kompresi gambar dengan fungsi berikut :

//Set ukuran gambar hasil perubahan
$dst_width = $width;
$dst_height = ($dst_width/$src_width)*$src_height;

variable $dst_width akan berisi sesuai dengan parameter yang diberikan saat pemanggilan fungsi, sedangkan variable $dst_height merupakan perhitungan proporsional dari ukuran asli terhadap ukuran yang dikopresi. Untuk mendapatkan ukuran tinggi yang sesuai dengan lebar yang ditentukan maka dilakukan perhitungan. Ukuran lebar yang di seting dibagi dengan ukuran asli gambar kemudian dibagi dengan tinggi asli gambar. maka didapatlah tinggi yang akan sesuai dengan lebar yang ditentukan, sehingga keluaran gambar tidak akan rusak, masih sama dengan proporsional aslinya, namun resolusi keluaran pasti akan berbeda.

lalu langkah berikutnya adalah membuat gambar baru dari salinan yang telah dibuat dengan lebar dan tinggi yang sudah di kompres sesuai keinginan dengan fungsi berikut :

//proses perubahan ukuran
$im = imagecreatetruecolor($dst_width,$dst_height);
imagecopyresampled($im, $im_src, 0, 0, 0, 0, $dst_width, $dst_height, $src_width, $src_height);
//Simpan gambar
imagejpeg($im,$vdir_upload . $new_name,100);

setelah berhasil membuat gambar baru dengan resolusi yang baru, maka proses pembuatan gambar baru akan dihapus dari memori dan dihapus dari direktori menggunakan fungsi :

//Hapus gambar di memori komputer
imagedestroy($im_src);
imagedestroy($im);
$remove_small = unlink("$vfile_upload");

untuk menggunakan fungsi ini, tentunya menggunakan HTML untuk membuat form upload gambar sebagai berikut :

<form action ="" method="POST" enctype="multipart/form-data">
 <input type="file" name="foto" accept="image/JPEG"/>
 <input type="submit" name="upload" value="upload"/>
</form>

jangan pernah melupakan atribute enctype="multipart/form-data" saat ingin melakukan proses upload file pada sebuah form.

kemudian cara menjalankan fungsi tersebut sebagai berikut :

if(isset($_POST['upload'])){
 $new_name=time().'.jpg';
 $file='foto'; //name pada inputan type file
 $dir='image/';
 $width=400;//satuan dalam pixel / px
 UploadImageResize($new_name,$file,$dir,$width);
}

artinya program akan mengeksekui perintah ketika tombol submit diklik atau variable $_POST['upload'] telah ada pada memeory. lalu deklarasikanlah parameter-parameter yang akan diproses,

hasil befor after gambar hasil kompresi sebagai berikut :




Dari resolusi 3000px menjadi 400px. Happy Coding. Selamat malam, selamat menanti tutorial berikutnya :)

Download Code


Tidak ada komentar :

Posting Komentar