¡El comando "convertir" de ImageMagick no puede usar fuentes!

10
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

El comando anterior da como resultado el siguiente error:

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

Busqué en la web y descubrí que muchos usuarios vieron este error, pero no encontraron ninguna solución. ¿Alguien puede ayudar?

NOTA 1: la fuente Arial está instalada en mi sistema:

$ 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

NOTA 2: Cambiar el caso en el nombre de la fuente (en ariallugar de Arial) no ayuda.

NOTA 3: El uso de la ruta absoluta del archivo de fuente con el nombre completo del archivo de fuente ( filename.fileextension) elimina el error:

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
PHP Learner
fuente
Antes de publicar como respuesta: lo resolví usando la ruta absoluta a la fuente en cuestión. Aunque no estoy seguro de por qué. Avíseme si funciona :)
Jacob Vlijm
Por favor, editar su pregunta y después de la salida de fc-list | grep -i arial. El comando que muestra funcionó para mí sin error. ¿Tienes instalado Arial?
terdon
@terdon, en Ubuntu, este es un problema común. Sin embargo, nunca encontré una explicación.
Jacob Vlijm el
@JacobVlijm presumiblemente, es algo sobre el nombre de la fuente en el caché de fuentes entonces. Quizás necesita minúsculas arialo el nombre es ligeramente diferente. También necesitas tener el msttcorefontsinstalado, creo.
terdon
1
@terdon Cuando lo encontré (era algo para Parto: askubuntu.com/questions/552456/… ) Probé todo: mayúsculas / minúsculas, también todo tipo de fuentes sin suerte. En alguna publicación (no AU) me encontré con la sugerencia de usar rutas absolutas. Trabajado, sin la satisfacción de entender por qué.
Jacob Vlijm el

Respuestas:

12

Arial no es una fuente gratuita. Sus términos de uso en plataformas de código abierto como Linux y Ubuntu hacen que sea imposible distribuirlo como parte de una instalación. Debe usar una de las alternativas gratuitas / abiertas , como Liberation.

Puede enumerar las fuentes que tiene convert -list font. P.ej:

$ 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
meuh
fuente
Les puedo asegurar que no tiene nada que ver con eso. Todas las fuentes funcionan si se utilizan rutas absolutas. ¿Has probado?
Jacob Vlijm
3
Estimado Dios, no está relacionado con la licencia de fuente o los derechos de autor. Solo está relacionado con el nombre de la fuente en mi sistema. Su respuesta me guió a utilizar $ convert -list font | grep "Font:" | grep Arialel mando y que dio como resultado: Font: Arial-Black-Regular Font: Arial-Bold Font: Arial-Bold-Italic Font: Arial-Italic Font: Arial-Regular. Por lo tanto, entiendo que debo usar "Arial-Regular" en lugar de "Arial" como nombre de fuente. Por favor actualice su respuesta!
PHP Learner
Esa lista está vacía
theonlygusti
3

Tengo el mismo problema con mi Macbook hoy. La causa de eso es simple.

convertir utiliza solo fuentes conocidas. Todas las fuentes conocidas para convertir se enumeran con este comando.

convert -list font

Mi fuente deseada estaba en ~/Library/Fonts. convertir no lo enumeró.

Seguí las instrucciones de Mark Setchell y pude generar mi type.xml.

La entrada para mi fuente en type.xml

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

Puedo usar el nombre o la ruta absoluta para generar mi imagen.

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
cinhtau
fuente