Php Çoklu Resim Boyutlandırma
Merhabalar… Çoklu resim boyutlandırma yapmam gerekiyordu… Çok aradım; yabancı kaynaklarda dahi bulamadım. Hamdolsun, sonunda yapmayı başardım… Programın Özellikleri:
*İstediğiniz kadar resmi aynı anda boyutlandırma
*Türkçe karakter, boşluk vb dosya isimlerini düzenleme
*Resimleri istediğiniz boyutlarda büyük ve küçük olarak boyutlandırma
*Resimlerin yükleneceği klasörü ayarlayabilme
*Aynı isimde resimlerin üzerine yazmayı engellemek için dosya adlarına tarih ekleme
*Küçük resimlerin dosya adlarına “kucuk” ifadesini ekleme
*Resimler klasörünü açmayı ve sunucuda chmod 777 ayarlamayı unutmayın.
*Eğer büyük – küçük şeklinde değilde sadece bir defa boyutlandırmasını istiyorsanız ilgili satırların önüne // işareti koyabilirsiniz.
resim_yukle.php kodları
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 72 73 74 75 76 77 78 79 |
<form enctype="multipart/form-data" action="" method="post"> <table border=0 cellpadding=3> <tr> <th>Dahiweb.Com <br> Coklu Resim Boyutlandirma</th> </tr> <tr><td><input type="file" name="resimler[]"></td></tr> <tr><td><input type="file" name="resimler[]"></td></tr> <tr><td><input type="file" name="resimler[]"></td></tr> <tr><td colspan=2 align="center"><input type="submit"></td></tr> </table> </form> <? //bismillah if($_FILES['resimler']) { $file = $_FILES['resimler']; include("resim_boyutla.php"); $resim_klasor="resimler"; // bu klasorleri acmayi unutmayin mutlaka bu klasore yazma izni vermelisiniz chmod 777 $buyuk_resim_en=640; $buyuk_resim_boy=480; $kucuk_resim_en=200; $kucuk_resim_boy=150; function turkcekarakter($isim){ $bulunacak = array('ç','Ç','ı','İ','ğ','Ğ','ü','ö','Ş','ş','Ö','Ü',',',' ','(',')','[',']'); $degistir = array('c','C','i','I','g','G','u','o','S','s','O','U','','_','','','',''); $isim=str_replace($bulunacak, $degistir, $isim); return($isim); } $klasor="gonder"; $k = count($file['name']); $desteklenenformatlar = array ("image/jpeg","image/pjpeg"); for($i=0 ; $i < $k ; $i++) { $isim = split('/',urldecode($file['name'][$i])); $rand =time();//Burada zamanı alıyoz if(in_array ($file['type'][$i], $desteklenenformatlar)) { $resim=$resim_klasor."/".$rand."_".turkcekarakter($isim[count($isim)-1]); move_uploaded_file($file['tmp_name'][$i], $resim); $kucukresim =$resim_klasor."/".$rand."_kucuk_".turkcekarakter($isim[count($isim)-1]); move_uploaded_file($_FILES["resim"]["tmp_name"],$kucukresim); // kucuk resmi boyutlandiriyoruz $icerik = resample($resim,$kucuk_resim_en,$kucuk_resim_boy); $dosya = fopen ($kucukresim,"w+"); fwrite($dosya,$icerik); fclose($dosya); // buyuk resmi boyutlandiriyoruz $icerik = resample($resim,$buyuk_resim_en,$buyuk_resim_boy); $dosya = fopen ($resim,"w+"); fwrite($dosya,$icerik); fclose($dosya); // resim boyutlandirma bitti echo"büyük resim adı=$resim<br />"; echo"küçük resim adı=$kucukresim<br /><br />"; // mysql e de bir alt satırda ekleyebilirsiniz... // mysql_query("insert into tablo .... } } } // Allah'a şükür bunuda çözdük... ?> |
resim_boyutla.php kodları
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 |
<?php function resample($resim,$max_en,$max_boy) { # Icerik icin kesi baslat ... ob_start(); # Ilk boyutlar $boyut = getimagesize($resim); $en = $boyut[0]; $boy = $boyut[1]; # Yeni boyutlar $x_oran = $max_en / $en; $y_oran = $max_boy / $boy; if (($en <= $max_en) and ($boy <= $max_boy)){ $son_en = $en; $son_boy = $boy; } else if (($x_oran * $boy) < $max_boy){ $son_en = $max_en; $son_boy = ceil($x_oran * $boy); } else { $son_en = ceil($y_oran * $en); $son_boy = $max_boy; } # Eski ve yeni resimler $eski = imagecreatefromjpeg($resim); $yeni = imagecreatetruecolor($son_en,$son_boy); # Eski resmi yeniden orneklendir imagecopyresampled( $yeni,$eski,0,0,0,0, $son_en,$son_boy,$en,$boy); # Yeni resmi bas ve icerigi cek imagejpeg($yeni,null,-1); $icerik = ob_get_contents(); # Resimleri yoket ve icerigi cikart ob_end_clean(); imagedestroy($eski); imagedestroy($yeni); return $icerik; } ?> |