может велик, но я не нашел готового:
функция выквадрачивания изображения
Код |
---|
function image_resize($src, $dst){
if(!list($w, $h) = getimagesize($src)) return "Unsupported picture type!";
$type = strtolower(substr(strrchr($src,"."),1));
if($type == 'jpeg') $type = 'jpg';
switch($type){
case 'bmp': $img = imagecreatefromwbmp($src); break;
case 'gif': $img = imagecreatefromgif($src); break;
case 'jpg': $img = imagecreatefromjpeg($src); break;
case 'png': $img = imagecreatefrompng($src); break;
default : return "Unsupported picture type!";
}
$x = $y = 0;
if($w < $h) {
$x = $h/2 - $w/2;
$new = imagecreatetruecolor($h, $h);
} else {
$y = $w/2 - $h/2;
$new = imagecreatetruecolor($w, $w);
}
$color = imagecolorallocate($new, 255, 255, 255);
imagefill($new, 0, 0, $color);
imagecopyresampled($new, $img, $x, $y, 0, 0, $w, $h, $w, $h);
switch($type){
case 'bmp': imagewbmp($new, $dst); break;
case 'gif': imagegif($new, $dst); break;
case 'jpg': imagejpeg($new, $dst); break;
case 'png': imagepng($new, $dst); break;
}
return true;
} |