Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

[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. :) berikut scriptnya saya share kan.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?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. :) Semoga bisa membantu teman-teman yg mempunyai keperluan sama. Kritik dan saran sangat ditunggu dilist komentar dibawah. Jangan lupa cek Portofolio saya Freelance Web Developer untuk keperluan membuat website company profile or Toko Online bisa menghubungi saya, melewati Contact Us. :)

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

Tagged:

Comments

Sign In or Register to comment.