Kaskus

Tech

sIpIt *_*Avatar border
TS
sIpIt *_*
[SHARE TUTORIAL] Resize banyak gambar / images dalam folder di PHP
Waktu itu saya punya keperluan untuk memproses banyak sekali images. Keperluan saya waktu itu adalah mau meresize atau membuat thumbnail dari banyak gambar-gambar produk untuk keperluan toko online. Tentunya kalau kita resize satu2 menggunakan photoshop / image editor lainnya akan memakan banyak waktu. Foto yang waktu itu perlu saya resize adalah sebanyak 700an gambar. Bisa dibayangkan kalau manual bisa sampai berapa lama.

Jadi saya membuat script untuk resize otomatis saja, biar urusan cepat kelar. emoticon-Smilie berikut scriptnya saya share kan.
Code:

<?php
//set php.ini untuk waktu eksekusinya biar tidak ada batasnya
ini_set('max_execution_time', 0);

//Config utama, folder target dan folder tujuan / hasil resize
$folderImages = '/home/public_html/websites/images/'; //folder target, diakhiri dengan slash
$folderTarget = '/home/public_html/websites/images/new/'; //folder tujuan, diakhiri dengan slash
$lebarImageBaru = 500; //lebar images hasil resize
$tinggiImageBaru = 500; // tinggi images hasil resize
$kualitasImage = 80; //kualitas images 0 - 100

//buka folder target, lakukan loop ke semua images dan proses resize
if($dir = opendir($folderImages)){
while(($file = readdir($dir))!== false){

$imagePath = $folderImages.$file;
$targetPath = $folderTarget.$file;
$checkValidImage = @getimagesize($imagePath);

if(file_exists($imagePath) && $checkValidImage) //lanjutkan jika 2 parameter yg dicek TRUE
{
//Image valid, proses resize.
if(resizeImage($imagePath,$targetPath,$lebarImageBaru,$tinggiImageBaru,$kualitasImage))
{
echo $file.' resize Berhasil!<br />';
/*
Image sudah berhasil diresize disini,
Kalau mau menyimpan informasi di database bisa lakukan di scope ini
*/

}else{
echo $file.' resize Gagal!<br />';
}
}
}
closedir($dir);
}

//Fungsi untuk meresize Image
function resizeImage($imageSumber,$imageTarget, $lebarMax,$tinggiMax,$kualitasImage)
{
list($iWidth,$iHeight,$type) = getimagesize($imageSumber);
$ImageScale = min($lebarMax/$iWidth, $tinggiMax/$iHeight);
$lebarBaru = ceil($ImageScale*$iWidth);
$tinggiBaru = ceil($ImageScale*$iHeight);
$NewCanves = imagecreatetruecolor($lebarBaru, $tinggiBaru);

switch(strtolower(image_type_to_mime_type($type)))
{
//tipe images yg bisa diresize jpeg,png, dan gif
case 'image/jpeg':
case 'image/png':
case 'image/gif':
$NewImage = imagecreatefromjpeg($imageSumber);
break;
default:
return false;
}

// Resize Image
if(imagecopyresampled($NewCanves, $NewImage,0, 0, 0, 0, $lebarBaru, $tinggiBaru, $iWidth, $iHeight))
{
// copy file
if(imagejpeg($NewCanves,$imageTarget,$kualitasImage))
{
imagedestroy($NewCanves);
return true;
}
}
}
?>


Bisa langsung dipraktekkan dengan memakai script diatas. emoticon-SmilieSemoga bisa membantu teman-teman yg mempunyai keperluan sama. Kritik dan saran sangat ditunggu dilist komentar dibawah. Jangan lupa cek Portofolio saya
Freelance Web Developeruntuk keperluan membuat website company profile or Toko Online bisa menghubungi saya, melewati Contact Us. emoticon-Smilie

Untuk menuju ke postingan langsung di blog saya bisa langsung klik link ini
Resize banyak gambar / images dalam folder di PHP

emoticon-Jempol
0
1.1K
0
GuestAvatar border
Komentar yang asik ya
GuestAvatar border
Komentar yang asik ya
Komunitas Pilihan