(PHP 5 >= 5.5.0, PHP 7, PHP 8)
imagecropauto — Обрезает изображение автоматически на основе заданного режима
$image,$mode = IMG_CROP_DEFAULT,$threshold = 0.5,$color = -1
Функция автоматически обрезает изображение на основе заданного
режима mode.
imageОбъект GdImage, который возвращает одна из функций, создающих изображения, например, imagecreatetruecolor().
modeКонстанта из следующего списка:
IMG_CROP_DEFAULTIMG_CROP_TRANSPARENT.
До PHP 7.4.0 встроенный модуль libgd выбирал режим IMG_CROP_SIDES,
если у изображения не было прозрачного цвета.
IMG_CROP_TRANSPARENTIMG_CROP_BLACKIMG_CROP_WHITEIMG_CROP_SIDESIMG_CROP_THRESHOLDthreshold
и цвету color.
thresholdПараметр определяет допуск в процентах, который функция не превысит при сравнении цвета изображения и цвета обрезки. Метод расчёта цветовой разницы основан на цветовом расстоянии в кубе RGB(a).
Учитывается только в режиме IMG_CROP_THRESHOLD.
Замечание: До PHP 7.4.0 встроенная библиотека libgd работала по другому алгоритму, поэтому один и тот же порог
thresholdвыдавал разные результаты для системной и встроенной библиотеки libgd.
colorЗначение RGB-цвета или индекс палитры.
Учитывается только в режиме IMG_CROP_THRESHOLD.
Функция возвращает объект обрезанного изображения, если выполнилась успешно, или false, если возникла ошибка.
Функция возвращает false и при обрезке всего изображения.
| Версия | Описание |
|---|---|
| 8.0.0 |
Параметр image теперь ожидает экземпляр класса GdImage;
раньше параметр ждал корректный gd-ресурс (resource).
|
| 8.0.0 | Функция теперь возвращает объект класса GDImage, если выполнилась успешно; раньше возвращался ресурс (resource). |
| 7.4.0 |
Поведение функции imagecropauto() во встроенной библиотеке libgd синхронизировали
с поведением системной библиотеки libgd: режим IMG_CROP_DEFAULT больше
не откатывается к режиму IMG_CROP_SIDES, а пороговая обрезка теперь
работает по тому же алгоритму, что и системная библиотека libgd.
|
| 7.4.0 |
Значение режима mode по умолчанию изменили
на IMG_CROP_AUTO. Раньше значением по умолчанию было
-1, что соответствует режиму IMG_CROP_DEFAULT,
но передача значения -1 теперь устарела.
|
Пример #1 Правильная обработка автообрезки
Как отмечает раздел возвращаемого значения, функция imagecropauto()
возвращает false, если обрезала всё изображение.
В этом примере ресурс изображения $im автоматически обрезается,
только если есть, что обрезать; иначе продолжается работа с исходным изображением.
<?php
$cropped = imagecropauto($im, IMG_CROP_DEFAULT);
if ($cropped !== false) { // При возврате нового объекта изображения
$im = $cropped; // Назначаем обрезанное изображение переменной $im
}
?>