(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_DEFAULT
IMG_CROP_TRANSPARENT
.
До PHP 7.4.0 встроенный модуль libgd выбирал режим IMG_CROP_SIDES
,
если у изображения не было прозрачного цвета.
IMG_CROP_TRANSPARENT
IMG_CROP_BLACK
IMG_CROP_WHITE
IMG_CROP_SIDES
IMG_CROP_THRESHOLD
threshold
и цвету 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
}
?>