Imagick 输出假图像
Imagick output false image
本页脚本在底部,
imagick classes Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator
ImageMagick version 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
但是正确图片是底部
http://www.irfansahin.com/imagick/info.php
脚本有什么问题。
您的代码看起来不错,并且给出的结果与您在我的机器上所期望的结果相似,这意味着几乎可以肯定是使用有问题的 ImageMagick 版本导致了您的问题。
ImageMagick 版本 6.5.4-7 于 2009-07-30 发布,在错误修复方面相当古老。我强烈建议您使用最新版本的 ImageMagick,既可以使您的代码正常工作,也可以解决几个安全问题。
本页脚本在底部,
imagick classes Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator
ImageMagick version 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
但是正确图片是底部
http://www.irfansahin.com/imagick/info.php
脚本有什么问题。
您的代码看起来不错,并且给出的结果与您在我的机器上所期望的结果相似,这意味着几乎可以肯定是使用有问题的 ImageMagick 版本导致了您的问题。
ImageMagick 版本 6.5.4-7 于 2009-07-30 发布,在错误修复方面相当古老。我强烈建议您使用最新版本的 ImageMagick,既可以使您的代码正常工作,也可以解决几个安全问题。