(PECL imagick 2 >= 2.0.1, PECL imagick 3)
Imagick::distortImage — Искажает изображение, используя различные методы искажения
Искажает изображение, используя различные методы искажения, сопоставляя поисковые запросы цвета исходного изображения
с новым целевым изображением, обычно того же размера, что и исходное изображение,
если для параметра "bestfit" установлено значение true.
Если параметр "bestfit" включён и это позволяет искажение, целевое изображение настраивается таким образом, чтобы исходное изображение полностью соответствовало конечному целевому изображению, которое будет иметь соответствующий размер и смещение. Также во многих случаях при сопоставлении будет учитываться виртуальное смещение исходного изображения.
Метод доступен, если модуль Imagick скомпилировали с версией ImageMagick 6.3.6 или старше.
methodМетод искажения изображения. Смотрите константы искажения.
argumentsАргументы для выбранного метода искажения.
bestfitПопытка изменить размер места назначения, чтобы он соответствовал искажённому источнику.
При успешном выполнении функция возвращает true.
При ошибке функция выбрасывает исключение ImagickException.
Пример #1 Пример использования Imagick::distortImage():
Искажение изображения и отображение в браузере.
<?php
/* Создание нового объекта */
$im = new Imagick();
/* Создание нового узора в виде шахматной доски */
$im->newPseudoImage(100, 100, "pattern:checkerboard");
/* Установка формата изображения на png */
$im->setImageFormat('png');
/* Заполнение новых видимых областей прозрачным цветом */
$im->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
/* Активация матовости */
$im->setImageMatte(true);
/* Контрольные точки для искажения */
$controlPoints = array( 10, 10,
10, 5,
10, $im->getImageHeight() - 20,
10, $im->getImageHeight() - 5,
$im->getImageWidth() - 10, 10,
$im->getImageWidth() - 10, 20,
$im->getImageWidth() - 10, $im->getImageHeight() - 10,
$im->getImageWidth() - 10, $im->getImageHeight() - 30);
/* Выполнение искажения */
$im->distortImage(Imagick::DISTORTION_PERSPECTIVE, $controlPoints, true);
/* Вывод изображения */
header("Content-Type: image/png");
echo $im;
?>Вывод приведённого примера будет похож на: