Temat: [php] wyświetlanie zdjęć
function scaleandcrop($image, $width, $height, $dest)
{
$other=0;
$ext=strtolower(substr($image, -4));
switch($ext)
{
case ".jpg": case "jpeg":
$img = imagecreatefromjpeg($image);
break;
case ".gif":
$img = imagecreatefromgif($image);
break;
case ".png":
$img = imagecreatefrompng($image);
break;
default:
$other=1;
break;
}
if(!$other)
{
$w = imagesx($img);
$h = imagesy($img);
$top=0;
$left=0;
if(($width/$height)>($w/$h))
{
$nw=$width;
$nh=ceil($nw*($h/$w));
}
else
{
$nh=$height;
$nw=ceil($nh*($w/$h));
} if($nh>$height)
{
$top=ceil(($nh-$height)/2)*-1;
}
else
{
$left=ceil(($nw-$width)/2)*-1;
}
$img_mini = imagecreatetruecolor($width, $height);
imagecopyresampled($img_mini, $img, $left, $top, 0, 0, $nw , $nh, $w ,$h);
imagejpeg($img_mini, $dest, 80);
}
}
scaleandcrop('zima.jpg', 100, 600, 'zimam.jpg');
sprawdź to, parametry funkcji: obrazek wejściowy, szerokosc, wysokość, obrazek wyjściowy
Wrzucasz zdjęcie na serwer => tworzysz miniaturkę o tej samej nazwie np w folderze miniaturki, w php wyświetlasz miniaturki a nie pełne obrazy
Skrypt przycina obrazy dzięki czemu przy wysokich lub szerokich obrazach nie są one "zmiażdżone" jest widoczny ich środkowy obszar
Sebastian Poddubiuk edytował(a) ten post dnia 15.08.09 o godzinie 14:48