我正在尝试使用php和iMagick在图像上创建文本叠加层。关键部分是我希望缩放文本大小以填充预定义的框,因此我不想设置固定的字体大小。我在ImageMagick - Text into rectangle找到了代码,但需要为iMagick调整此代码。除了关键部分-size ${width}x100
这里是我的代码,我尝试过的一些事情已经注释掉了
$draw = new ImagickDraw();
$draw->setGravity (Imagick::GRAVITY_SOUTHEAST);
$draw->setFont('Bookman-DemiItalic');
//$draw->setFontSize( 30 ); // don't want to set a fixed font size
$draw->setTextUnderColor('#00000075');
//$draw->setSize(0, 0, 200, 200); // error: Call to undefined method ImagickDraw::setSize()
//$draw->setViewBox(200, 200, 800, 800); // appears to do nothing
//$draw->rectangle(200,200,300,300); // this just draws a separate white box
$draw->annotation(100, 100, 'The quick brown fox jumps over the lazy dog'); // works, but it's a default (small) text size and the box simply fits the exact text with no border
$img->drawImage($draw);
是否有某种尺寸选项,我在文档中错过了什么?
请注意How can I wrap text using Imagick in PHP so that it is drawn as multiline text?部分解决了这个问题,但它似乎没有提供文本缩放以适合固定大小的框,而是如果选定的字体大小会导致文本的文本换行超支虽然也许我误解了 - 我会试一试!