<?php
function zmniejsz_foto($plik, $dx, $dy, $sciezka, $compression=75, $mode='proportional') {
switch ($tmp[2]) {
case 1:
$img_src = imagecreatefromgif($plik);
break;
case 2:
$img_src = imagecreatefromjpeg($plik);
break;
case 3:
$img_src = imagecreatefrompng($plik);
break;
case 6:
$img_src = imagecreatefrombmp($plik);
break;
}
$sx = $tmp[0];
$sy = $tmp[1];
if ($mode == 'proportional') {
if ($sx > $dx || $sy > $dy) {
if ($dx/$dy > $sx/$sy) {
$newX = $dy/$sy*$sx;
$newY = $dy;
}
else {
$newX = $dx;
$newY = $dx/$sx*$sy;
}
$dx = $newX;
$dy = $newY;
}
else {
$dx = $newX = $sx;
$dy = $newY = $sy;
}
$offY = $offX = 0;
$cutY = $cutX = 0;
}
elseif ($mode == 'stretch') {
if ($dx/$dy > $sx/$sy) {
$newX = $dy/$sy*$sx;
$newY = $dy;
$offX = ($dx - $newX)/2;
$offY = 0;
}
elseif ($dx/$dy < $sx/$sy) {
$newX = $dx;
$newY = $dx/$sx*$sy;
$offX = 0;
$offY = ($dy - $newY)/2;
}
else {
$newX = $dx;
$newY = $dy;
$offX = 0;
$offY = 0;
}
$cutY = $cutX = 0;
}
elseif ($mode == 'center') {
if ($sx > $dx || $sy > $dy) {
if ($dx/$dy > $sx/$sy) {
$newX = $dy/$sy*$sx;
$newY = $dy;
$offX = ($dx - $newX)/2;
$offY = 0;
}
elseif ($dx/$dy < $sx/$sy) {
$newX = $dx;
$newY = $dx/$sx*$sy;
$offX = 0;
$offY = ($dy - $newY)/2;
}
else {
$newX = $dx;
$newY = $dy;
$offX = 0;
$offY = 0;
}
}
else {
$newX = $sx;
$newY = $sy;
$offX = ($dx-$sx)/2;
$offY = ($dy-$sy)/2;
}
$cutY = $cutX = 0;
}
elseif ($mode == 'cut') {
if ($sx > $dx || $sy > $dy) {
if ($dx/$dy < $sx/$sy) {
$newX = $dy/$sy*$sx;
$newY = $dy;
$offX = ($dx - $newX)/2;
$offY = 0;
}
elseif ($dx/$dy > $sx/$sy) {
$newX = $dx;
$newY = $dx/$sx*$sy;
$offX = 0;
$offY = ($dy - $newY)/2;
}
else {
$newX = $dx;
$newY = $dy;
$offX = 0;
$offY = 0;
}
}
else {
$newX = $sx;
$newY = $sy;
$offX = ($dx-$sx)/2;
$offY = ($dy-$sy)/2;
}
$cutY = $cutX = 0;
}
$img_dst = imagecreatetruecolor($dx,$dy);
$white = imagecolorallocate($img_dst, 0, 0, 0);
imagefill($img_dst, 0, 0, $white);
imagecopyresampled($img_dst, $img_src, $offX, $offY, $cutX, $cutY, $newX, $newY, $sx, $sy);
imagejpeg($img_dst,$sciezka,$compression);
/*header('Content-type: image/jpeg');
imagejpeg($img_dst);*/
imagedestroy($img_src);
imagedestroy($img_dst);
}
?>
wygrzebałem gdzieś takiego staruszka. pobaw się. pozmieniaj i zobacz - powinienes juz latwo i szybko dojsc jak zrobic co chcesz ;]