0

imagick php拡張機能を使用して画像を遠近法で歪ませようとしていますが、これを行うための次のコードがあります。

    $controlPoints = array(
                    0,0, 0,0, 
                    0,$height, 0,$height, 
                    $width,0, $width,$perspective_wrap, 
                    $width,$height, $width,$hps
                    );
$im1->setImageMatte(true);
//Distort the image -- In perspective with the matrix given above
$im1->distortImage(Imagick::DISTORTION_PERSPECTIVE, $controlPoints, true);  



Linuxサーバーでは画像が歪んでいますが、Windowsホスティングでスクリプトを移動すると、次のエラーが発生するようです。
致命的なエラー:キャッチされない例外「ImagickException」とメッセージ「引数配列を読み取れません」

行が$ im1-> ConstraintImage(Imagick :: DISTORTION_PERSPECTIVE、$ controlPoints、true);

両方のプラットフォームで動作させる方法はありますか?

4

1 に答える 1

0

私のLinuxサーバーには次のImagickバージョンがあったようです:
ImageMagickバージョン:ImageMagick 6.7.6-8 2012-05-02 Q16

およびWindowsサーバー:

ImageMagickバージョンImageMagick 6.4.1 05/16/08 Q16


だから、 Windowsサーバーの$controlPoints配列には、すべての要素がINT値として含まれている必要があります。Linuxサーバーとそのimagemagickバージョンでは、一部の値が文字列である場合は問題がなかったため、問題の解決策は$controlPoints配列値をint値に変換することでした。

私のように誰かがこの問題を乗り越えたら、それが役立つことを願っています。

于 2012-06-21T17:50:39.827 に答える