如何扭曲圆柱周围的图像?

问题描述 投票:0回答:1

我刚刚开始学习PHP的Imagick库,我需要围绕一个cyclinder扭曲图像。我一直在使用以下示例:

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

要成功旋转/缩放/扩展图像等但无法看到我如何将其包裹在圆柱体周围。

我可以看到有一种方法可以在Cylindrical Displacement中使用docs

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);
php imagick warp
1个回答
0
投票

PHP Imagick主要提供来自console util的所有功能。你只需要从功能列表中找到合适的类比:

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(...);

...
© www.soinside.com 2019 - 2024. All rights reserved.