Php ImageMagick从中心偏移文本

Php ImageMagick从中心偏移文本,php,imagemagick,Php,Imagemagick,我试图在生成的图像中包含文本重心的条件偏移。我读了一些书,显然我能用 代码如下: <?php function process($inputdata) { $width = 400; $height = 300; $textBackground = new ImagickPixel('transparent'); $textColor = new ImagickPixel('#FFF'); $gradient = new Imagick(); //gradient:angle=ang

我试图在生成的图像中包含文本重心的条件偏移。我读了一些书,显然我能用

代码如下:

<?php

function process($inputdata)
{
$width = 400;
$height = 300;

$textBackground = new ImagickPixel('transparent');
$textColor = new ImagickPixel('#FFF');

$gradient = new Imagick();
//gradient:angle=angle in degrees
$gradient->newPseudoImage($width, $height, 'gradient:#3a7bd5-#3a6073');

$image = new Imagick();
$image->newImage($width, $height, $textBackground);

$gradient->setImageColorspace($image->getImageColorspace());

$draw = new ImagickDraw();
$draw->setFillColor($textColor);
$draw->setFontSize( 25 );
$draw->setGravity(Imagick::GRAVITY_CENTER );
//$draw->setGeometry(Imagick::Geometry +20 +20); --New code that doesn't work

$image->annotateImage($draw, 0, 0, 0, $inputdata); 

$gradient->compositeImage($image, Imagick::COMPOSITE_OVER, 0, 0);
$gradient->setImageFormat('png');

header('Content-type: image/png');
echo $gradient;
return;
}
?>

理论上,这应该会使文本偏离重心,但是当我尝试时,它会停止生成图像。我认为我犯了一个错误,因为我能找到的唯一示例代码是用于命令行的,而不是用于PHP接口。

没有等效于-geometry的代码。使用compositeImage中的偏移来移动图像。但是您需要先设置重力。

注释掉设置内容类型的标题行,启用正确的PHP错误报告,然后查看脚本输出中出现的错误消息或警告。@CBroe我这样做了,我仍然没有收到错误,只是图像不起作用。我把它放在我的PHP文件
错误报告(E_ALL)中;ini_集合(“错误报告”,E_全部)根据php Imagick页面,setGeometry不是一个选项。您可能会偏移注释图像行上的文本。“只是图像不起作用”-您是按照我的要求查看实际的脚本输出-还是您只是在浏览器中看到一个“断开的图像”符号变为“du'h?”@Bonzo这是我在文档中找到的命令行版本
$draw->setGravity(Imagick::GRAVITY_CENTER );
$draw->setGeometry(Imagick::Geometry +20 +20);