Citat:
Originalno napisao McKracken
Pogledaj imagecopyresampled funkciju......
|
U pravu si, upravo je
imagecopyresampled funkcija koja meni treba. Zapravo i pomocu odredjivanja kvaliteta slike se moze doci do resenja medjutim u tom slucaju sam morao da izmisljam formulu kojom bi u zavisnosti od velicine izvorne slike u bajtima preracunavao kolika kompresija bi mi zadovoljavala kako bi bila optimalna za prikaz u mojoj sirini i visini slike a ne po defoltu. Ovako ne treba nikakva formula jer je meni prikaz fiksan a sama funkcija umanjuje izvornu sliku na zadatom prikazu sirina X visina. Znaci u ranije pomenutom kodu sam umesto
Kôd:
$src_img=@imagecreatefromjpeg($upfile);
$w=imageSX($src_img);
$h=imageSY($src_img);
$dst_img=ImageCreateTrueColor($w,$h);
imagecopy($dst_img,$src_img,0,0,0,0,$w,$h);
imagejpeg($dst_img, $upfile, 30);
imagedestroy($dst_img);
imagedestroy($src_img);
ubacio
Kôd:
$filename = $upfile;
$width = 150;
$height = 173;
header('Content-type: image/jpeg');
list($width_orig, $height_orig) = getimagesize($filename);
$ratio_orig = $width_orig/$height_orig;
if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
imagejpeg($image_p, $upfile, 100);