2

我似乎无法让 Imagick::setFont 在 php 中工作。直接从手册页中获取示例:

/* Create new imagick object */
$im = new Imagick();

/* Set the font for the object */
$im->setFont("comic.ttf");

/* Create new caption */
$im->newPseudoImage(100, 100, "caption:Hello");

$im->setformat('png');
header('Content-type: image/png');
echo $im;

我得到...

你好 http://i53.tinypic.com/2d2bn9x.png

...这显然不是漫画。我试过很多字体。它永远不会改变。如果文件不存在,它会抱怨。它不接受像“Arial”这样的名称。

4

2 回答 2

2

我在这里遇到同样的情况,我找到了这篇文章

http://www.imagemagick.org/discourse-server/viewtopic.php?f=10&t=11937

他们说应该安装 Freetype 库,但还没有尝试过。

更新

最后我有机会尝试它并且它起作用了。

我用

ImageMagick 6.7.6

想象3.0

自由类型 2.4.9

Freetype-devel 2.3.11

字体配置开发 2.8

PHP 5.3.13

于 2012-05-12T11:31:02.373 回答
2

当您使用 setFont 方法时,您需要确保传递字体的绝对路径:

$im->setFont("/var/www/html/mysite/media/fonts/myCustomFont.ttf");

同样适用于您的 localhost 开发,只需更改绝对路径即可。

(这是一个有点老的问题,但我还是想回答一下。)

于 2013-10-11T22:05:17.337 回答