Perintah "convert" ImageMagick tidak dapat menggunakan font!

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

Perintah di atas menghasilkan kesalahan berikut:

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

Saya mencari di web dan menemukan bahwa banyak pengguna melihat kesalahan ini, tetapi tidak menemukan solusi. Adakah yang bisa membantu?

CATATAN 1: Font Arial diinstal pada sistem saya:

$ 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

CATATAN 2: Mengubah case dalam nama font ( arialbukan Arial) tidak membantu.

CATATAN 3: Menggunakan jalur file font absolut dengan nama file font lengkap ( filename.fileextension) menghilangkan kesalahan:

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
Pelajar PHP
sumber
Sebelum memposting sebagai jawaban: Saya menyelesaikannya dengan menggunakan jalur absolut ke font yang dimaksud. Tapi tidak yakin kenapa. Beri tahu saya jika berhasil :)
Jacob Vlijm
Harap edit pertanyaan Anda dan kirim hasilnya fc-list | grep -i arial. Perintah yang Anda tunjukkan bekerja untuk saya tanpa kesalahan. Apakah Anda sudah menginstal Arial?
terdon
@terdon, di Ubuntu, ini adalah masalah umum. Namun tidak pernah menemukan penjelasan.
Jacob Vlijm
@JacobVlijm mungkin, itu sesuatu tentang nama font di font-cache itu. Mungkin perlu huruf kecil arialatau namanya sedikit berbeda. Anda juga perlu msttcorefontsmenginstal, saya pikir.
terdon
1
@terdon Ketika saya menabraknya (adalah sesuatu untuk Parto: askubuntu.com/questions/552456/... ) Saya mencoba semuanya: huruf besar / kecil, juga semua jenis font tanpa hasil. Pada beberapa posting (bukan AU) saya berlari ke saran untuk menggunakan jalur absolut. Bekerja, tanpa kepuasan memahami mengapa.
Jacob Vlijm

Jawaban:

12

Arial bukan font gratis. Ketentuan penggunaannya pada platform open source seperti Linux dan Ubuntu membuatnya tidak mungkin untuk didistribusikan sebagai bagian dari instalasi. Anda harus menggunakan salah satu alternatif bebas / terbuka seperti Pembebasan.

Anda dapat membuat daftar font yang Anda miliki convert -list font. Misalnya:

$ 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
sumber
Saya dapat meyakinkan Anda, itu tidak ada hubungannya dengan itu. Semua font berfungsi jika path absolut digunakan. Apakah kamu sudah mencoba?
Jacob Vlijm
3
Dear meuh, ini tidak terkait dengan lisensi font atau hak cipta. Itu hanya terkait dengan nama font di sistem saya. Jawaban Anda membimbing saya untuk menggunakan $ convert -list font | grep "Font:" | grep Arialperintah dan itu mengakibatkan: Font: Arial-Black-Regular Font: Arial-Bold Font: Arial-Bold-Italic Font: Arial-Italic Font: Arial-Regular. Jadi saya mengerti bahwa saya harus menggunakan "Arial-Regular" daripada "Arial" sebagai nama font. Harap perbarui jawaban Anda!
PHP Learner
Daftar itu kosong
theonlygusti
3

Saya mendapat masalah yang sama dengan Macbook saya hari ini. Penyebabnya sederhana.

konversi hanya menggunakan font yang dikenal. Semua font yang dikenal untuk dikonversi tercantum dengan perintah ini.

convert -list font

Font yang saya inginkan ada di ~/Library/Fonts. mualaf tidak mencantumkannya.

Saya mengikuti instruksi dari Mark Setchell dan mampu menghasilkan saya type.xml.

Entri untuk font saya di type.xml

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

Saya dapat menggunakan nama atau jalur absolut untuk menghasilkan gambar saya.

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
sumber