@wb_by
Учусь

Как сделать масштабирование и обрезку картинки средствами PHP?

Здравствуйте! У меня есть форма в которую загружают любую картинку для (грубо говоря) аватарки сотрудника предприятия. Нужно масштабировать картинку до 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. Не могу понять в чем здесь ошибка...
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 1
ssenj
@ssenj
HTML, CSS, PHP, WordPress, Bitrix
Не проще использовать расширение PHP типа GD2, который для этого и предназначен?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы