PHP Imagick — Деформация изображения вокруг цилиндра

Я только начинаю изучать PHP-библиотеку Imagick, и мне нужно деформировать изображение вокруг велосипеда. Я использовал следующие примеры:

http://www.phpimagick.com/Imagick/rotateImage

Чтобы успешно повернуть / масштабировать / растянуть и т. Д. Изображение, но не вижу, как можно обернуть его вокруг цилиндра.

Я вижу, что есть способ сделать это с Cylindrical Displacement в документы:

convert rose: -background black -gravity south -splice 0x8 \
\( +clone -sparse-color barycentric '0,0 black 69,0 white' \) \
\( +clone -function arcsin 0.5 \) \
\( -clone 1 -level 25%,75% \
-function polynomial -4,4,0 -gamma 2 \
+level 50%,0 \) \
-delete 1 -swap 0,1  miff:- |\
composite - -virtual-pixel black  -displace 17x7  rose_cylinder.png

Это просто не имеет смысла для меня, когда я использую такой код, как:

$img = new Imagick($the_img_path);
// to resize
$img->resizeImage($_w, $_h, imagick::FILTER_LANCZOS, 1, false);
// to crop
$img->cropImage($crop_w, $crop_h, $crop_x, $crop_y);

0

Решение

PHP Imagick предоставляет в основном все функции из консольной утилиты. Нужно просто найти соответствующие аналоги из списка функций:

http://php.net/manual/en/book.imagick.php

Таким образом, для sparse ты должен использовать Imagick :: sparseColorImage. Чтобы применить функцию: Imagick :: functionImage. И так далее.

Ваш код будет похож на:

$original = new Imagick('rose');
$original->setBackgroundColor('black');
$original->setGravity('south')
$original->spliceImage(...);

$clone = clone $original;
$clone->functionImage(...);

...
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]