如果可能的话,我想远离使用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();
当我使用文本而不尝试添加第二张图像时,这是生成的图像:
答案 0 :(得分:0)
这解决了它......
$ bgImage = new Imagick
不是
$ bgImage-> readImage