Imagick::thumbnailImage

(PECL imagick 2, PECL imagick 3)

Imagick::thumbnailImageИзменяет размер изображения

Описание

public Imagick::thumbnailImage(
    int $columns,
    int $rows,
    bool $bestfit = false,
    bool $fill = false,
    bool $legacy = false
): bool

Метод изменяет размерность изображения до заданных размеров и удаляет цветовые профили и другие метаданные изображения. Цель состоит в том, чтобы создавать легкие миниатюры изображений для отображения на вебе. При передаче в третий параметр значения true параметры столбцов и строк определяют предельные размеры каждой стороны. Функция пропорционально уменьшает изображение, пока каждая сторона не совпадёт со значением или не станет меньше значения параметра этой стороны.

Замечание: Поведение параметра bestfit изменили в Imagick 3.0.0. До этой версии при размерах 400 x 300 точек изображение размером 200 x 150 точек оставалось нетронутым. В Imagick 3.0.0 и более поздних версиях изображение будет масштабироваться до размера 400 x 300 точек, поскольку такой размер «больше остальных соответствует» заданным размерам. Потребуется указать как ширину, так и высоту, если задали параметр bestfit.

Список параметров

columns

Ширина изображения.

rows

Высота изображения.

bestfit

Определяет, следует ли принудительно устанавливать максимальные значения.

fill

Изображение заливается фоновым цветом изображения, если изображение не заполняет область на 100 %.

legacy

Параметр принудительно округляет меньшую сторону изображения до ближайшего целого вниз, даже если значение дробной части больше или равно 0.5.

Возвращаемые значения

Функция в случае успешной работы возвращает true.

Ошибки

Функция выбрасывает исключение ImagickException, если возникла ошибка.

Примеры

Пример #1 Пример изменения размера изображения функцией Imagick::thumbnailImage()

<?php

function thumbnailImage($imagePath) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->setbackgroundcolor('rgb(64, 64, 64)');
$imagick->thumbnailImage(100, 100, true, true);
header("Content-Type: image/jpg");
echo
$imagick->getImageBlob();
}

?>