Установка шрифта ImageMagick Unicode на Linux не работает - PullRequest
0 голосов
/ 31 января 2011

На моем Linux-сервере CentOS установлена ​​программа ImageMagick.

Я пытаюсь заставить ImageMagick преобразовывать юникодные (не римские) шрифты в изображение. Я могу сделать это с латинскими шрифтами, но не с латинским, например с китайским.

РЕДАКТИРОВАТЬ * Когда я пытаюсь конвертировать нелатинские шрифты, они отображаются как мусор, такой как% $ ?? W * ??

Я установил шрифты Unicode в моей системе и обновил файл ImageMagick type.xml до отразить это (я также обновил свою базу данных locate).

когда я запускаю (в моей оболочке): # identifier -list Тип

Я вижу, что мои шрифты установлены и ImageMagick их видит, но они (нелатинские шрифты) все еще не работают, когда я запускаю свой php-скрипт преобразования текста в изображение

Я проверил еще одну статью, касающуюся этого: Заставьте ImageMagick распознавать шрифт

Но после всего, что у меня есть, у меня все та же проблема. Пожалуйста, помогите.

Спасибо.

EDIT: Вот некоторый код, связанный с инициализацией imagemagick:

            $font = 'UNICODE.TTF';  
    /* Create imagickdraw object */
    $draw = new ImagickDraw();
    $draw->setFont($font);
    $draw->setStrokeAntialias(true);
    $draw->setTextAntialias(true);
            $draw->setFontSize(100);
            $draw->setTextEncoding("UTF-8");

          //and than there is a bunch of code I use to manipulate the image shadow etc.

UPDATE С момента получения помощи через комментарии к этому посту я узнал:

  1. Этот ImageMagick способен конвертировать нелатинские символы Юникода Это было проверено путем передачи еврейского слова в ImageMagick через командную строку Linux.

  2. Следовательно, проблема заключается в способности модуля ImageMagick PHP интерпретировать нелатинский текст в Юникоде.

  3. Файл php сам содержит все необходимые элементы для поддержки UTF-8 и фактически создает файл с именем файла, полученным из той же текстовой переменной, которую я передаю ImageMagick для создания изображения. Имя файла успешно сохранено на моем сервере с помощью php в нелатинском тексте Unicode.

Я посмотрел в сети и не могу найти никакой информации по этому вопросу, когда она возникает с использованием PHP-модулей ImageMagick для создания и изображения из текста нелатинским шрифтом Unicode.

Может ли это быть ошибкой ImageMagick? Любая помощь будет оценена. Благодарю.

1 Ответ

0 голосов
/ 04 февраля 2011

Решение этой проблемы было найдено в невидимой здесь проблеме кодирования, которая возникает позже в моем PHP.По сути, я разделил строку на отдельные символы, и мне нужно было сделать это так, чтобы не уничтожать 2-байтовые символы Юникода.

Я не думал показывать остальную часть своего кода людям, которые пытаются помочь мне решить эту проблему, что было большой ошибкой с моей стороны.извлеченный урок.

...