我有以下shell脚本,我几乎逐字地从ImageMagick manual:
复制 convert input.jpg -background White -pointsize 32 label:'Hello world' +swap -gravity Center -append output.jpg;
现在我想在共享的webhost上运行相同的操作(似乎没有convert
命令可用)。从表面上看,从命令行到PHP的映射看起来相当简单,但不知何故并非如此。以下代码打印输入图像不变。
//header('Content-type: image/jpeg');
$image = new Imagick('input.jpg');
$image->setBackgroundColor("White");
$image->setPointSize(32);
$image->setGravity(imagick::GRAVITY_CENTER);
$image->labelImage("hello world");
echo $image->count(); // 1
echo $image->appendImages(True);
//echo $image;
labelImage
函数的文档很少,而且似乎没有做太多的事情。此外,没有swap
功能。
在图像上添加标题的等效PHP代码是什么?
[编辑]
似乎labelImage
只设置了一个属性,就像commentImage
一样(此时提供了示例)。有一个看起来很有希望的render
命令,但是会出错:Fatal error: Call to undefined method Imagick::render()
。奇...
答案 0 :(得分:0)
我不了解标签,但使用splice链接文档的第二种方法确实可以很好地翻译:
$image = new Imagick("memes/$name.jpg");
$draw = new ImagickDraw();
$image->setBackgroundColor("White");
$image->spliceImage(0, 40, 0, 0);
$draw->setFillColor('black');
$draw->setFontSize( 28 );
$draw->setGravity(Imagick::GRAVITY_NORTH);
$image->annotateImage($draw, 10, 10, 0, $label);