1

PHP の Imagick ライブラリを学習し始めたばかりで、円柱の周りに画像をワープする必要があります。私は次の例を使用しています。

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

画像を正常に回転/スケーリング/拡張などするには、円柱に巻き付ける方法がわかりません。

docsCylindrical 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);
4

1 に答える 1

0

PHP Imagick は、コンソール util のほぼすべての機能を提供します。関数リストから適切な類似物を見つけるだけです:

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

したがって、Imagick::sparseColorImagesparseを使用する必要があります。関数を適用するには: Imagick::functionImage。等々。

コードは次のようになります。

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

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

...
于 2016-01-25T15:26:42.530 に答える