ImageMagick“convert”명령은 글꼴을 사용할 수 없습니다!


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

답변으로 게시하기 전에 : 해당 글꼴의 절대 경로를 사용하여 문제를 해결했습니다. 왜 그런지 잘 모르겠습니다. 그것이 작동하는지 알려주세요 :)
Jacob Vlijm

제발 편집 질문을하고의 출력을 게시 fc-list | grep -i arial. 당신이 보여주는 명령은 오류없이 저에게 효과적이었습니다. Arial이 설치되어 있습니까?
terdon

@terdon, 우분투에서 이것은 일반적인 문제입니다. 그래도 설명을 찾지 못했습니다.
Jacob Vlijm

@JacobVlijm은 아마도 font-cache의 글꼴 이름에 관한 것입니다. 아마도 소문자가 필요 arial하거나 이름이 약간 다릅니다. 당신도 msttcorefonts설치 가 필요 하다고 생각합니다.
terdon

1
@ terdon 내가 그것을 만났을 때 (Parto에 대한 것이 었습니다 : askubuntu.com/questions/552456/… ) 나는 모든 것을 시도했습니다 : 대문자 / 소문자, 운이없는 모든 유형의 글꼴. AU가 아닌 일부 게시물에서 절대 경로를 사용하라는 제안을 받았습니다. 이유를 이해하는 데 만족하지 않고 일했습니다.
Jacob Vlijm

답변:


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

나는 당신과 확신 할 수 있습니다, 그것은 그것과 관련이 없습니다. 절대 경로를 사용하면 모든 글꼴이 작동합니다. 시도해 보았 니?
Jacob Vlijm

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"대신 "Arial-Regular"를 사용해야한다는 것을 이해합니다. 답변을 업데이트하십시오!
PHP Learner

그 목록이 비어
theonlygusti

3

나는 오늘 맥북과 같은 문제를 겪었다. 그 원인은 간단합니다.

변환은 알려진 글꼴 만 사용합니다. 변환 할 모든 알려진 글꼴이이 명령과 함께 나열됩니다.

convert -list font

원하는 글꼴이입니다 ~/Library/Fonts. convert는 그것을 나열하지 않았습니다.

Mark Setchell 의 지침에 따라 내을 생성 할 수있었습니다 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.