Я использую ImageMagick для создания значков продуктов для продуктов в нашей системе. Значки продуктов похожи на ТАК чутье , всего лишь несколько составных изображений и немного текста. В этом сценарии нет ничего плохого, так как он отлично работает на моей машине для разработки под управлением Windows. Однако в моей производственной системе (CentOS 5.1) он отображает все, кроме текста.
Я думал, что это проблема со шрифтом, но она не работает, даже если я копирую файл шрифта в местоположение файла PHP, и не работала, когда я указывал полный путь.
И это не сработало, когда я установил шрифты Windows для Linux как , описанное здесь .
Я набрал convert -list font
, и он показывает список шрифтов, о которых Имаджик знает (примерный список показан ниже)
Font: Times-BoldItalic
family: Times
style: Italic
stretch: Normal
weight: 700
glyphs: /usr/share/fonts/default/Type1/n021024l.pfb
Font: Times-Italic
family: Times
style: Italic
stretch: Normal
weight: 400
glyphs: /usr/share/fonts/default/Type1/n021023l.pfb
Font: Times-Roman
family: Times
style: Normal
stretch: Normal
weight: 400
glyphs: /usr/share/fonts/default/Type1/n021003l.pfb
Я попытался указать абсолютный путь, указанный здесь, и он не сработал. Я также пытался просто использовать имя и до сих пор ничего.
В основном изображение отображается, но его текстовые части не отображаются вообще, и никаких ошибок не возникает (см. Изображения ниже).
В коде нет ничего плохого, и Windows, и CentOS используют закрытые версии Imagick (6.7.1-4 и 6.7.1-3). Единственной проблемой может быть шрифт, я просто устанавливаю и проверяю нормальные шрифты TTF, нужен ли какой-то особый шрифт, чтобы он работал?
Рабочая
Broke
EDIT - игнорировать различия в QR-коде и рейтингах. Это связано с тем, что работающий значок и нерабочий значок находятся на двух разных серверах.
ОБНОВЛЕНИЕ 1 - Я запустил простой тестовый скрипт, и даже он не работает. Это то, что я запустил в качестве теста: http://us2.php.net/manual/en/function.imagick-annotateimage.php Шрифт просто не отображается, и никаких ошибок не выдается.
Я также скопировал шрифт из системы CentOS и попробовал его на коробке с Windows, и он отлично работает. Шрифты просто не работают на CentOS.
Я также попробовал это без установки шрифта, я предполагаю, что Imagick подберет шрифт по умолчанию или что-то еще, и снова работает в Windows, но не в CentOS. Я собираюсь попробовать это на другой версии * nix, чтобы посмотреть, что произойдет. Буду обновлять с выводами.
Обновление 3 : Я сузил проблему до проблемы с библиотекой FreeType, я думаю. Форумы утверждают, что для правильного отображения текста необходимо установить FreeType. И когда я смотрю на config.log, он говорит мне, что есть проблема установки FreeType. Буду признателен за любые советы, в то время как я собираюсь переустановить Freetype и снова запустить установку.