Как установить шрифт в Imagick PHP?

Я не могу заставить 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;

Я получил...

hellohttp://i53.tinypic.com/2d2bn9x.png

... что явно не комик санс. Я пробовал множество шрифтов. Это никогда не меняется. Он жалуется, если файл не существует. Он не принимает такие имена, как «Arial».


person Brian Gates    schedule 23.06.2011    source источник
comment
Файл шрифта находится в той же папке, что и скрипт? Если нет, путь должен быть установлен правильно...   -  person tplaner    schedule 23.06.2011
comment
@evolve, шрифт определенно находится в правильном месте. Если я перемещу его, скрипт не сработает. Если он находится в правильном месте, он отображается, но шрифт остается неизменным.   -  person Brian Gates    schedule 23.06.2011


Ответы (2)


У меня такая же ситуация, и я нашел этот пост

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

Говорят, надо установить библиотеку Freetype, но пока не пробовал.

ОБНОВЛЕНИЕ

Наконец у меня появилась возможность попробовать, и это сработало.

я использую

ImageMagick 6.7.6

Имагик 3.0

Свободный тип 2.4.9

Бесплатная разработка 2.3.11

Fontconfig-devel 2.8

PHP 5.3.13

person Onur Kucukkece    schedule 12.05.2012

Когда вы используете метод setFont, вам нужно убедиться, что вы передаете абсолютный путь к шрифту:

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

То же самое применимо к вашей разработке на локальном хосте, просто измените абсолютный путь.

(Это немного старый вопрос, но я все равно решил ответить на него.)

person Kirill    schedule 11.10.2013