Polecenie „konwersja” ImageMagick nie może używać czcionek!


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

Powyższe polecenie powoduje następujący błąd:

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

Przeszukałem sieć i zauważyłem, że wielu użytkowników widziało ten błąd, ale nie znalazłem żadnego rozwiązania. Czy ktoś może pomóc?

UWAGA 1: Czcionka Arial jest zainstalowana w moim systemie:

$ 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

UWAGA 2: Zmiana wielkości liter w nazwie czcionki ( arialzamiast Arial) nie pomaga.

UWAGA 3: Użycie bezwzględnej ścieżki pliku czcionek z pełną nazwą pliku czcionki ( filename.fileextension) usuwa błąd:

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

Przed opublikowaniem jako odpowiedzi: Rozwiązałem go, stosując bezwzględną ścieżkę do danej czcionki. Nie jestem pewien, dlaczego. Daj mi znać, czy to działa :)
Jacob Vlijm,

Proszę edytować swoje pytanie i dodawać wyjście fc-list | grep -i arial. Polecenie, które wyświetlasz, działało dla mnie bez błędów. Czy masz zainstalowany Arial?
terdon

@terdon na Ubuntu jest to częsty problem. Nigdy nie znalazłem wyjaśnienia.
Jacob Vlijm,

@JacobVlijm przypuszczalnie ma to związek z nazwą czcionki w buforze czcionek. Być może potrzebuje małych liter ariallub nazwa jest nieco inna. msttcorefontsMyślę, że musisz mieć zainstalowany.
terdon

1
@terdon Kiedy na to wpadłem (było coś dla Parto: askubuntu.com/questions/552456/... ) Próbowałem wszystkiego: wielkie / małe litery, także wszystkie typy czcionek bez powodzenia. W pewnym poście (nie w AU) natknąłem się na sugestię użycia ścieżek bezwzględnych. Działało bez satysfakcji ze zrozumienia dlaczego.
Jacob Vlijm,

Odpowiedzi:


12

Arial nie jest darmową czcionką. Warunki użytkowania na platformach typu open source, takich jak Linux i Ubuntu, uniemożliwiają dystrybucję w ramach instalacji. Powinieneś użyć jednej z bezpłatnych / otwartych alternatyw, takich jak Wyzwolenie.

Możesz wyświetlić listę czcionek convert -list font. Na przykład:

$ 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

Zapewniam cię, że to nie ma z tym nic wspólnego. Wszystkie czcionki działają, jeśli są używane ścieżki bezwzględne. Próbowałeś?
Jacob Vlijm,

3
Drogi meuh, nie ma to związku z licencją czcionek ani prawami autorskimi. Jest to związane z nazwą czcionki w moim systemie. Twoja odpowiedź kierować mnie do korzystania $ convert -list font | grep "Font:" | grep Arialpolecenie i wynikało to: Font: Arial-Black-Regular Font: Arial-Bold Font: Arial-Bold-Italic Font: Arial-Italic Font: Arial-Regular. Rozumiem zatem, że muszę używać „Arial-Regular” zamiast „Arial” jako nazwy czcionki. Zaktualizuj swoją odpowiedź!
PHP Learner

Ta lista jest pusta
theonlygusti

3

Mam dzisiaj ten sam problem z moim Macbookiem. Przyczyna tego jest prosta.

Konwertuj używa tylko znanych czcionek. Wszystkie znane czcionki do konwersji są wymienione za pomocą tego polecenia.

convert -list font

Moja pożądana czcionka była w ~/Library/Fonts. konwersja nie wymieniała tego.

Postępowałem zgodnie z instrukcjami Marka Setchella i byłem w stanie wygenerować mój type.xml.

Wpis mojej czcionki w type.xml

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

Mogę użyć nazwy lub ścieżki bezwzględnej do wygenerowania obrazu.

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.