我试图通过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-> distortImage(Imagick :: DISTORTION_PERSPECTIVE,$ controlPoints,true);
有没有办法让它在两个平台上都能运行?
答案 0 :(得分: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服务器和那个图像magick版本上,如果某些值 string 没有问题,所以解决问题的方法是将 $ controlPoints 数组值转换为 int 值。
如果有人像我一样克服这个问题,希望它有所帮助。