imagecropauto

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagecropautoОбрезает изображение автоматически на основе заданного режима

Описание

imagecropauto(
    GdImage $image,
    int $mode = IMG_CROP_DEFAULT,
    float $threshold = 0.5,
    int $color = -1
): GdImage|false

Функция автоматически обрезает изображение на основе заданного режима 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
Анализирует 4 угла изображения, чтобы попытаться обнаружить фон для обрезки.
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
}

?>

Смотрите также

  • imagecrop() - Обрезает изображение до заданного прямоугольника