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

# imagecropauto

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

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

### Описание

function 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() - Обрезает изображение до заданного прямоугольника

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open