Здравствуйте! У меня есть форма в которую загружают любую картинку для (грубо говоря) аватарки сотрудника предприятия. Нужно масштабировать картинку до 100 пикселей в одном из измерений и затем обрезать лишнее в другом измерении. Короче, получаться должна картинка .jpg 100x100. Делается сразу на лету... Первый параметр ставлю просто $_FILES["image"]. До этого делал сам код, получалось обрезать, но не мог понять как отмасштабировать и подсмотрел в инете готовые решения. Получилось вот:
function prepare_e_photo($image, $save_to, $quality = 100) {
unlink($save_to);
$w = $_CONFIG["EMPLOYEES"]["IMAGE_W"];
$h = $_CONFIG["EMPLOYEES"]["IMAGE_H"];
list($width, $height) = getimagesize($image);
$r = $width / $height;
if ($crop) {
if ($width > $height) {
$width = ceil($width-($width*abs($r-$w/$h)));
} else {
$height = ceil($height-($height*abs($r-$w/$h)));
}
$newwidth = $w;
$newheight = $h;
} else {
if ($w/$h > $r) {
$newwidth = $h*$r;
$newheight = $h;
} else {
$newheight = $w/$r;
$newwidth = $w;
}
}
$src = imagecreatefromjpeg($image);
$dst = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagejpeg($dst, $save_to, $quality);
imagedestroy($src);
return $dst;
}
Но этот код превращает картинку просто в черный квадрат, хотя и 100x100. Не могу понять в чем здесь ошибка...