imagecropauto
(PHP 5 >= 5.5.0, PHP 7)
imagecropauto — Обрезает изображение автоматически, используя один из доступных режимов
Описание
$image
, int $mode
= IMG_CROP_DEFAULT
, float $threshold
= .5
, int $color
= -1
) : resource|false
Автоматически обрезает изображение в соответствии с заданным
mode
.
Список параметров
-
image
-
Ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как 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
в случае возникновения ошибки.
Если полное изображение было обрезано, imagecrop() возвращает false
.
Список изменений
Версия | Описание |
---|---|
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) { // в случае возврата нового ресурса изображения
imagedestroy($im); // мы уничтожаем исходное изображение
$im = $cropped; // и назначаем обрезанное изображение в $im
}
?>
Смотрите также
- imagecrop() - Обрезать изображение до заданного прямоугольника