Seemingly, you can't omit the width the same way you do with the height. If you write -1 for the width and specify a number for the height it will return false(PHP 5 >= 5.5.0, PHP 7, PHP 8)
imagescale — Масштабировать изображение по заданной ширине и высоте
$image,$width,$height = -1,$mode = IMG_BILINEAR_FIXEDimagescale() масштабирует изображение, используя заданный алгоритм интерполяции.
Замечание:
В отличие от многих функций по работе с изображениями, imagescale() не изменяет переданный параметр
image; вместо него будет возвращено новое изображение.
imagewidthШирина для масштабирования.
heightВысота для масштабирования изображения. Если этот параметр опущен или отрицателен, соотношение сторон будет сохранено.
mode
Одна из констант IMG_NEAREST_NEIGHBOUR,
IMG_BILINEAR_FIXED,
IMG_BICUBIC,
IMG_BICUBIC_FIXED или что-либо ещё (будет использовано
два прохода).
Замечание:
IMG_WEIGHTED4пока ещё не поддерживается.
Возвращает объект масштабированного изображения в случае успешного выполнения или false, если возникла ошибка.
Функция выбрасывает ошибку ValueError,
если значение параметра width или height
приведёт к переполнению или недополнению.
Функция выбрасывает ошибку ValueError,
если значение параметра mode некорректно.
| Версия | Описание |
|---|---|
| 8.4.0 |
Функция теперь выбрасывает ошибку ValueError,
если значение параметра width или height
приведёт к переполнению или недополнению.
|
| 8.4.0 |
Функция теперь выбрасывает ошибку ValueError,
если значение параметра mode некорректно.
|
| 8.0.0 | В случае успешного выполнения функция теперь возвращает экземпляр GDImage; ранее возвращался ресурс (resource). |
| 8.0.0 |
Параметр image теперь принимает объект GdImage;
раньше параметр принимал корректный gd-ресурс (resource).
|
Seemingly, you can't omit the width the same way you do with the height. If you write -1 for the width and specify a number for the height it will return falseSome hardened PHP deployments silently fail on `IMG_BICUBIC` - no error message, no exception thrown, just returns false. Omitting the parameter falls back to default, so it might work. Experiment with other values if suspicious.To resize height without specifying a width you can rotate the image by 90 degrees, resize, then rotate by 270 degrees.
$outputImage = imagerotate($image, 90, 0);
$outputImage = imagescale($outputImage, $minSize);
$outputImage = imagerotate($outputImage, 270, 0);