Команда "конвертувати" ImageMagick не може використовувати шрифти!


11
convert -size 300x50 xc:none -font Arial -pointsize 20 -gravity center -draw "fill white text 1,1 \"$1\" text 0,0 \"$1\" fill black text -1,-1 \"$1\"" $WATERMARK_FILE

Вище наведена команда призводить до наступної помилки:

convert.im6: unable to read font `Arial' @ warning/annotate.c/RenderType/853.

Я здійснив пошук в Інтернеті і виявив, що багато користувачів бачили цю помилку, але не знайшли рішення. Хтось може допомогти?

ПРИМІТКА 1: Шрифт Arial встановлений у моїй системі:

$ fc-list | grep -i arial
/usr/share/fonts/truetype/msttcorefonts/Arial_Italic.ttf: Arial:style=Italic,Cursiva,kurzíva,kursiv,Πλάγια,Kursivoitu,Italique,Dőlt,Corsivo,Cursief,Kursywa,Itálico,Курсив,İtalik,Poševno,nghiêng,Etzana
/usr/share/fonts/truetype/msttcorefonts/ariblk.ttf: Arial Black:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
/usr/share/fonts/truetype/msttcorefonts/Arial.ttf: Arial:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,thường,Arrunta
/usr/share/fonts/truetype/msttcorefonts/arialbd.ttf: Arial:style=Bold,Negreta,tučné,fed,Fett,Έντονα,Negrita,Lihavoitu,Gras,Félkövér,Grassetto,Vet,Halvfet,Pogrubiony,Negrito,Полужирный,Fet,Kalın,Krepko,đậm,Lodia
/usr/share/fonts/truetype/msttcorefonts/Arial_Bold_Italic.ttf: Arial:style=Bold Italic,Negreta cursiva,tučné kurzíva,fed kursiv,Fett Kursiv,Έντονα Πλάγια,Negrita Cursiva,Lihavoitu Kursivoi,Gras Italique,Félkövér dőlt,Grassetto Corsivo,Vet Cursief,Halvfet Kursiv,Pogrubiona kursywa,Negrito Itálico,Полужирный Курсив,Tučná kurzíva,Fet Kursiv,Kalın İtalik,Krepko poševno,nghiêng đậm,Lodi etzana
/usr/share/fonts/truetype/msttcorefonts/arialbi.ttf: Arial:style=Bold Italic,Negreta cursiva,tučné kurzíva,fed kursiv,Fett Kursiv,Έντονα Πλάγια,Negrita Cursiva,Lihavoitu Kursivoi,Gras Italique,Félkövér dőlt,Grassetto Corsivo,Vet Cursief,Halvfet Kursiv,Pogrubiona kursywa,Negrito Itálico,Полужирный Курсив,Tučná kurzíva,Fet Kursiv,Kalın İtalik,Krepko poševno,nghiêng đậm,Lodi etzana
/usr/share/fonts/truetype/msttcorefonts/Arial_Black.ttf: Arial Black:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
/usr/share/fonts/truetype/msttcorefonts/Arial_Bold.ttf: Arial:style=Bold,Negreta,tučné,fed,Fett,Έντονα,Negrita,Lihavoitu,Gras,Félkövér,Grassetto,Vet,Halvfet,Pogrubiony,Negrito,Полужирный,Fet,Kalın,Krepko,đậm,Lodia
/usr/share/fonts/truetype/msttcorefonts/ariali.ttf: Arial:style=Italic,Cursiva,kurzíva,kursiv,Πλάγια,Kursivoitu,Italique,Dőlt,Corsivo,Cursief,Kursywa,Itálico,Курсив,İtalik,Poševno,nghiêng,Etzana

ПРИМІТКА 2: Зміна регістру у назві шрифту ( arialзамість Arial) не допоможе.

ПРИМІТКА 3. Використання абсолютного контуру файлу шрифту з повним іменем файлу шрифту ( filename.fileextension) усуває помилку:

convert -size 300x50 xc:none -font "/usr/share/fonts/truetype/msttcorefonts/Arial.ttf" -pointsize 20 -gravity center -draw "fill white text 1,1 \"$1\" text 0,0 \"$1\" fill black text -1,-1 \"$1\"" $WATERMARK_FILE

Перш ніж публікувати як відповідь: я вирішив це, використовуючи абсолютний шлях до відповідного шрифту. Не впевнений, чому все-таки. Повідомте мене, якщо це працює :)
Яків Влійм,

Будь ласка , змініть своє питання і після виведення fc-list | grep -i arial. Команда, яку ви показуєте, працювала для мене без помилок. У вас встановлений Arial?
тердон

@terdon, на Ubuntu, це поширена проблема. Ніколи не знайшли пояснення.
Яків Влійм

@JacobVlijm, мабуть, мова йде про назву шрифту в кеш-шрифті тоді. Можливо, йому потрібні малі літери arialабо назва трохи інша. Вам також потрібно msttcorefontsвстановити, я думаю.
тердон

1
@terdon Коли я наткнувся на це (було щось для Parto: askubuntu.com/questions/552456/… ), я спробував усе: верхній / нижній регістр, а також усі типи шрифтів, не пощастивши. У якомусь дописі (не в АС) я зіткнувся з пропозицією використовувати абсолютні шляхи. Працювали, не задовольняючи розуміння, чому.
Яків Влійм

Відповіді:


12

Arial - це не безкоштовний шрифт. Умови його використання на платформах з відкритим кодом, такі як Linux та Ubuntu, унеможливлюють розповсюдження в рамках установки. Вам слід скористатися однією з вільних / відкритих альтернатив, таких як Визволення.

Ви можете перелічити шрифти, які у вас є convert -list font. Наприклад:

$ convert -list font|grep Liberation-Sans
Font: Liberation-Sans-Bold
Font: Liberation-Sans-Bold-Italic
Font: Liberation-Sans-Italic
Font: Liberation-Sans-Narrow-Bold
Font: Liberation-Sans-Narrow-Bold-Italic
Font: Liberation-Sans-Narrow-Italic
Font: Liberation-Sans-Narrow-Regular
Font: Liberation-Sans-Regular

Можу вас запевнити, це не має нічого спільного. Усі шрифти працюють, якщо використовуються абсолютні шляхи. Ви пробували?
Яків Влійм

3
Шановний мій, це не пов’язано з ліцензією шрифту або авторським правом. Це просто пов'язане з назвою шрифту в моїй системі. Ваш відповідь наставив мене використовувати $ convert -list font | grep "Font:" | grep Arialкоманду , і це призвело: Font: Arial-Black-Regular Font: Arial-Bold Font: Arial-Bold-Italic Font: Arial-Italic Font: Arial-Regular. Таким чином, я розумію, що я повинен використовувати "Arial-Regular" замість "Arial" як назву шрифту. Будь ласка, оновіть свою відповідь!
PHP Learner

Цей список порожній
theonlygusti

3

У мене сьогодні така ж проблема з моїм Macbook. Причина цього - проста.

конвертувати використовує лише відомі шрифти. Всі відомі шрифти для перетворення перераховані з цією командою.

convert -list font

Мій бажаний шрифт був у ~/Library/Fonts. конвертувати не перераховував.

Я дотримувався вказівок Марка Сетчелла і міг генерувати свої type.xml.

Запис для мого шрифту в type.xml

<type format="ttf"
  name="MyriadPro"
  fullname="MyriadPro-Regular"
  family="Myriad Pro" 
  glyphs="/Users/vinh/Library/Fonts/myriadpro-regular.ttf"/> 

Я можу використовувати ім'я або абсолютний шлях для створення свого зображення.

convert -size 300x50 xc:none -font "MyriadPro" \
  -pointsize 20 -kerning 1 -gravity center \
  -fill black -annotate 0x0+0+0 "mimacom" \
  -fill white -annotate 0x0+2+2 "mimacom" mimacom.png
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.