想象输出假图像

时间:2015-01-15 15:38:58

标签: imagemagick imagick

此页面脚本位于底部,

  

想象类Imagick,ImagickDraw,ImagickPixel,ImagickPixelIterator

     

ImageMagick版本ImageMagick 6.5.4-7 2014-02-10 Q16

error_reporting(E_ALL); 
ini_set("display_errors", 1); 

$im = new Imagick("/home/palirsin/public_html/imagick/ie9.png");

$im->thumbnailImage(200, null);

$im->borderImage(new ImagickPixel("white"), 5, 5);

$reflection = $im->clone();
$reflection->flipImage();

$gradient = new Imagick();

$gradient->newPseudoImage($reflection->getImageWidth() + 10,$reflection->getImageHeight() + 10, "gradient:transparent-black");

$reflection->compositeImage($gradient, imagick::COMPOSITE_OVER, 0, 0);

$reflection->setImageOpacity( 0.3 );

$canvas = new Imagick();

$width = $im->getImageWidth() + 40;
$height = ($im->getImageHeight() * 2) + 30;
$canvas->newImage($width, $height, new ImagickPixel("black"));
$canvas->setImageFormat("png");

$canvas->compositeImage($im, imagick::COMPOSITE_OVER, 20, 10);
$canvas->compositeImage($reflection, imagick::COMPOSITE_OVER,20, $im->getImageHeight() + 10);

header("Content-Type: image/png");
echo $canvas; 

给出这张照片的脚本
https://www.alirsin.com/imagick/info.php

但是 true 图片是底部的 http://www.irfansahin.com/imagick/info.php

脚本有什么问题。

1 个答案:

答案 0 :(得分:0)

您的代码看起来很好,并且给出了与您在我的机器上所期望的结果类似的结果,这意味着使用导致您出现问题的错误版本的ImageMagick几乎肯定是个问题。

ImageMagick版本6.5.4-7在2009-07-30上发布,这在错误修正方面相当古老。我强烈建议您使用最新版本的ImageMagick,既可以使您的代码正常工作,也可以解决几个安全问题。