คำสั่ง 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

ก่อนโพสต์เป็นคำตอบ: ฉันแก้ไขได้โดยใช้เส้นทางที่แน่นอนไปยังตัวอักษรที่เป็นปัญหา ไม่แน่ใจว่าทำไม แจ้งให้เราทราบว่าการทำงาน :)
จาค็อบ Vlijm

โปรดแก้ไขfc-list | grep -i arialคำถามของคุณและโพสต์การส่งออกของ คำสั่งที่คุณแสดงให้ฉันทำงานได้โดยไม่มีข้อผิดพลาด คุณติดตั้ง Arial แล้วหรือยัง?
terdon

@terdon บน Ubuntu นี่เป็นปัญหาที่พบบ่อย ไม่เคยพบคำอธิบายว่า
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-Regular" แทน "Arial" เป็นชื่อแบบอักษร โปรดอัปเดตคำตอบของคุณ!
PHP Learner

รายการนั้นว่างเปล่า
theonlygusti

3

วันนี้ฉันมีปัญหาเดียวกันกับ Macbook สาเหตุของสิ่งนั้นเป็นเรื่องง่าย

แปลงใช้แบบอักษรที่รู้จักเท่านั้น ฟอนต์ที่รู้จักทั้งหมดที่จะทำการแปลงจะถูกแสดงด้วยคำสั่งนี้

convert -list font

~/Library/Fontsตัวอักษรที่ต้องการของฉันอยู่ใน การแปลงไม่ได้อยู่ในรายการ

ฉันทำตามคำแนะนำจาก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.