Biraz merak birazda kendimi GD konusunda geliştirmek amacıylan yapdıgım “resim boyutunu orantılı küçültmek” şeysi…
[php] ####### GET İLE GELEN DOSYALAR ########
$dosya=$_GET[resim];
$istenilen_genislik=$_GET[genislik];
$istenilen_yukseklik=$_GET[yukseklik];
$istenilen_yukseklik2=$istenilen_yukseklik;
#######DOSYAMIZIN UZANTISI BULALIM##########
$resim_bol=explode(’.',$dosya);
$uzanti_al= count($resim_bol) -1;
$uzanti=”$resim_bol[$uzanti_al]”;
#######SAYFA YAPISINI BELİREDİK#########
if ($uzanti == ‘jpg’) {
$uzanti_gd = imagecreatefromjpeg($dosya);
header(”Content-type: image/jpeg”);
} else if ($uzanti == ‘gif’) {
$uzanti_gd = imagecreatefromgif($dosya);
header(”Content-type: image/gif”);
} else if ($uzanti == ‘png’) {
$uzanti_gd = imagecreatefrompng($dosya);
header(”Content-type: image/png”);
}
#########RESMİN BOYUTLARINI ALIYORUZ#########
$dosya_buyuklugu=getimagesize($dosya);
$gercek_genislik=$dosya_buyuklugu[0];
$gercek_yukseklik=$dosya_buyuklugu[1];
########ORANTILI YAPMAK İÇİN MATEMATİKSEL FOKSİYONLAR (yüzdelik hesabı ile) ############
if ($gercek_genislik >=$istenilen_genislik) {
$ufaltma_orani = ($istenilen_genislik*100) / $gercek_genislik;
$istenilen_yukseklik=($gercek_yukseklik*$ufaltma_orani) / 100;
}
if ($istenilen_yukseklik >=$istenilen_yukseklik2) {
$ufaltma_orani2 = ($istenilen_yukseklik2*100) / $istenilen_yukseklik;
$istenilen_yukseklik=$istenile_yukseklik2;
$istenilen_genislik=($gercek_genislik*$ufaltma_orani2) / 100;
}
######### GD DEVREDE #########
$yeni = imagecreatetruecolor($istenilen_genislik, $istenilen_yukseklik);
imagecopyresampled($yeni, $uzanti_gd, 0, 0, 0, 0, $istenilen_genislik, $istenilen_yukseklik, $gercek_genislik, $gercek_yukseklik);
##############################################
if ($uzanti == ‘jpg’) {
$uzanti_gd = imagejpeg($yeni);
} else if ($uzanti == ‘gif’) {
$uzanti_gd = imagegif($yeni);
} else if ($uzanti == ‘png’) {
$uzanti_gd = imagepng($yeni); }
imagedestroy($yeni);
##############################################
?>[/php]
Kullanım Şekli : ufalt.php?resim=resmininiz.jpg&genislik=100&yukseklik=100