Imagemagick,将创建的图像放在另一个上而不保存

时间:2017-10-12 04:06:01

标签: php image imagemagick

如果可能的话,我想远离使用exec。我在服务器上有一个永远不会改变的jpg图像。我只是想在它的顶部放置一些文字,但我希望这个文字是弯曲的和有效的。到目前为止,我已经创建了具有透明背景的virticle弯曲文本。现在我只想将它滑过已经制作并坐在服务器上的图像。这可能与保存生成的文本图像有关吗?

我一直在玩compositeImage,但是我搞砸了一些东西,因为页面无法加载而没有错误。

这是我到目前为止所做的:

$phone='555-555-5555';
$draw = new ImagickDraw();
$draw->setFontSize(48);
$draw->setStrokeAntialias(true);
$draw->setTextAntialias(true);
$draw->setFillColor('#'.$color);

$textOnly = new Imagick();
$textOnly->newImage(900, 300, "none");
$textOnly->setImageFormat('png');
$textOnly->annotateImage($draw, 0, 100, 0, $phone);
$distort = array(270);
$textOnly->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);

$textOnly->setImageMatte(true);
$textOnly->distortImage(Imagick::DISTORTION_ARC, $distort, false);
$textOnly->setImagePage(0, 0, 0, 0);

$textOnly->setformat('png');
$textOnly->cropImage(170, 445, 45, 105);

header("Content-Type: image/png");
print $textOnly->getimageblob();

我最后还尝试了上面的代码,但是我得到了500个错误:

$bgImage->readImage(BASE_PATH.'/src-images/background.jpg');
$bgImage->compositeImage($textOnly, Imagick::COMPOSITE_DEFAULT, 10, 20); 
header("Content-Type: image/png");
echo $bgImage->getimageblob();

当我使用文本而不尝试添加第二张图像时,这是生成的图像:

The resulting image

1 个答案:

答案 0 :(得分:0)

这解决了它......

$ bgImage = new Imagick

不是

$ bgImage-> readImage