Подтвердить что ты не робот

Почему список шрифтов пуст для imagemagick?

Я пытаюсь использовать ImageMagick для добавления некоторого текста в изображение. Но я обнаружил, что всегда говорил, что мой указанный шрифт не существует. После тщательного изучения руководства я заметил, что я могу использовать convert -list font для вывода всех доступных шрифтов, но после попытки выяснилось, что список доступных шрифтов пуст.

Это то, что я получаю:

shell$ convert -list font
shell$ 

Спасибо за любые подсказки.

4b9b3361

Ответ 1

Мне просто удалось сказать ImageMagick о шрифтах моей системы OSX следующим образом:

# Make a new directory for ImageMagick local settings and cd into it
mkdir ~/.magick
cd ~/.magick

# Grab script to find all fonts on system and store them in a config file
curl http://www.imagemagick.org/Usage/scripts/imagick_type_gen > type_gen

# Run script, telling it where my fonts are and create "type.xml" file with list  
find /System/Library/Fonts /Library/Fonts ~/Library/Fonts -name "*.[to]tf" | perl type_gen -f - > type.xml

# Go to ImageMagick config folder - see note at end to find correct folder
cd /usr/local/Cellar/imagemagick/6.8.9-1/etc/ImageMagick-6

# Edit system config file called "type.xml" and add line near end to tell IM to look at local file we made in earlier step
<typemap>
<include file="type-ghostscript.xml" />
<include file="~/.magick/type.xml" />                       ### THIS LINE ADDED ### 
</typemap>

Как найти правильную папку для вашего type.xml файла

Папка, в которой хранится type.xml, может сильно различаться между системами и версиями. Лучший способ узнать это - запустить следующую команду, чтобы увидеть, где выглядит ImageMagick:

convert -debug configure -list font 2>&1 | grep -E "Searching|Loading"

  Searching for configure file: "/usr/local/Cellar/imagemagick/6.9.5-0/share/ImageMagick-6/type.xml"
  Searching for configure file: "/usr/local/Cellar/imagemagick/6.9.5-0/lib/ImageMagick//config-Q16/type.xml"
  Searching for configure file: "/usr/local/Cellar/imagemagick/6.9.5-0/etc/ImageMagick-6/type.xml"
  Searching for configure file: "/usr/local/Cellar/imagemagick/6.9.5-0/share/doc/ImageMagick-6/type.xml"
  Searching for configure file: "/Users/mark/.config/ImageMagick/type.xml"
  Searching for configure file: "/Users/mark/.magick/type.xml"
  Loading type configure file "/usr/local/Cellar/imagemagick/6.9.5-0/etc/ImageMagick-6/type.xml" ...
  Loading type configure file "/usr/local/Cellar/imagemagick/6.9.5-0/etc/ImageMagick-6/type-apple.xml" ...
  Loading type configure file "/usr/local/Cellar/imagemagick/6.9.5-0/etc/ImageMagick-6/type-ghostscript.xml" ...
  Loading type configure file "/Users/mark/.magick/type.xml" ...

Итак, есть много мест, где вы могли бы вставлять шрифты. В общем случае, если вы выберете папку, начинающуюся с /etc или /usr/local, шрифты будут доступны для всех пользователей и для использования скриптов на вашем веб-сервере - если вы этого хотите. С другой стороны, если вы всего лишь один пользователь, вы можете сохранить файл конфигурации шрифта в своем каталоге входа, например. $HOME/.magick/type.xml.