function image_resize($dosya, $klasor="", $width, $height){vermeniz gereken: $_FILES["file"] değişkeni, hangi dizine kaydedeceği bilgisi ve boyut bilgileridir.
// orjineal genişlik ve yükseklik alındı.
$tmp_dosya = $dosya["tmp_name"];
$adi = $dosya["name"];
$type = $dosya["type"];
list($owidth, $oheight) = getimagesize($tmp_dosya);
// uzantısına göre resim oluşturuldu
if($type == "image/jpeg"){
$resource = imagecreatefromjpeg($tmp_dosya);
}elseif($type == "image/png"){
$resource = imagecreatefrompng($tmp_dosya);
}else{
$resource = imagecreatefromjpeg($tmp_dosya);
}
// yeni boş resim oluşturuldu
$aq = imagecreatetruecolor($width, $height);
// boş resim dolduruldu
$cr = imagecopyresampled($aq, $resource, 0, 0, 0, 0, $width, $height, $owidth, $oheight);
// uzantısına göre kaydedildi
if($type == "image/jpeg"){
imagejpeg($aq, $klasor."/".$adi, 90);
}elseif($type == "image/png"){
imagepng($aq, $klasor."/".$adi, 0);
}else{
imagejpeg($aq, $klasor."/".$adi, 90);
}
} // resize
örnek: image_resize($_FILES["file"], "200x120", 200, 120);
Kullanım örnekleri:
Yukarıda belirttiğim şekilde kullanabilirsiniz.
Ama siz önceden boyutlandırılmamış şekilde resimlerinizi yüklediniz mi? sorun değil. Aşağıdaki kodları düzenlenmesini istediğiniz resimlerin olduğu dizinde çalıştırırsanız resimleri istediğiniz boyut(lar)a çekebileceksiniz.
$dir = opendir(".");
$resimler = array();
while(($dosya = readdir($dir)) != false){
if(!is_dir($dosya)){
$ext = strtolower(pathinfo($dosya, PATHINFO_EXTENSION));
if($ext == "jpg"){
$resimler[] = $dosya; }
}
}
for($i=$kactan; $i<=$kaca; $i++){
$dosya = $resimler[$i];
$ahmet = Array(
"tmp_name" => $dosya,
"name" => $dosya,
"type" => "image/jpeg"
);
echo "<pre>";
print_r($ahmet);
echo "</pre>";
copy($dosya, "orj/$dosya");
image_resize($ahmet, "200x120", 200, 120);
image_resize($ahmet, "555x380", 555, 380);
image_resize($ahmet, "570x320", 570, 320);
unlink($dosya);
}
if($kactan > count($resimler)){
die("dosyalar biddi");
}
header("Refresh:1;url=test.php?kactan=0&kaca=3");
Yukarıdaki kod, bulunduğu dizindeki uzantısı jpg olan dosyaları bir diziye atar ve bu diziden üç tane dosyayı alıp $_FILES değişkenini simüle ederek fonksiyona gönderir.
Resmin orjinal halini "orj" dizinine, 200x120 lik halini ve diğer boyutlardaki halini ilgili dizinlere aktarıp bir dosyalık işi bittiğinde diğerine geçip döngüyü tamamlar. Döngü bittikten sonra bir sonraki 3 resmi almak için sayfa 1 saniye bekletilip bir sonraki dosyalar alınır.