Ich versuche, viele Einzelzeichenbilder mit zu erstellen convert
. Ziel ist es, einem Kunststoffspezialisten Bilder zum Drucken auf Tastaturkappen zur Verfügung zu stellen.
Die ImageMagick-Dokumentation schlägt Folgendes vor:
printf "\u2318" | convert -size 100x100 label:@- -font unifont-Medium command.png
oder
echo ⌘ | convert -size 100x100 label:@- -font unifont-Medium command.png
oder
convert -size 100x100 label:'⌘' -font unifont-Medium command.png
das das Symbol für den Ort des Interesses drucken soll , aber stattdessen ein Fragezeichen erzeugt.
Ich habe bestätigt (mit charmap
), dass das unifont-Medium
Fontset diese Glyphe tatsächlich enthält. Ich weiß, dass andere Schriftarten auf meinem System diese Glyphe ebenfalls bereitstellen können, da ich sie vor der Installation von unifont sehen konnte, aber ich konnte nicht herausfinden, wie sie heißen.
Ich habe auch versucht, LaTeX zu verwenden (z. B. TexLive mit allen Extras und dem utf8x
Paket), aber keines der Sonderzeichen wird unterstützt.
Es gibt viele Forumsfragen zum Drucken chinesischer Zeichen mit Imagemagick und anderen Sonderzeichen ... Folgendes funktioniert für mich:
convert -background lightblue -fill blue -pointsize 32 \
label:' é è à ù ç Ö ÿ ‘ ’ “ ” ° ² ³ € x ÷ ' label_i8n.gif
aber es funktioniert einfach nicht für die UTF-8-Zeichen, die für mich wirklich wichtig sind.
Wie kann ich beliebige Unicode-Zeichen in Bilder konvertieren?
UPDATE : Ich habe aufgegeben, sieht aus wie ein Käfer. Stattdessen habe ich eine Reihe von Skripten erstellt, um SVG zu generieren und zu rendern, die hier als Open-Source -Version verfügbar sind: kinesis-dvorak
quelle
Antworten:
Ich habe die gleichen Befehle ausprobiert und die gleichen Ergebnisse erzielt.
Das Ändern des Unicodes für den Buchstaben G funktioniert jedoch einwandfrei:
Ich würde diese Frage auf der ImageMagick Discourse-Website veröffentlichen, um zu sehen, warum dies geschieht. Ich kann Ihnen helfen, wenn Sie sich nicht sicher sind, wie Sie dies tun oder fortfahren sollen.
Debugging konvertieren
Sie können den
-debug annotate
Schalter hinzufügen, um zu sehen, wasconvert
los ist.Beispiel
UPDATE # 1 - Weiteres Debuggen
Dieses Problem hat mich geärgert, also denke ich, dass ich es endlich herausgefunden habe. Das Problem ist die Auswahl der Schriftart, und es ist nicht möglich, diese bestimmte Glyphe anzuzeigen.
Zunächst können Sie mit diesem Befehl sehen, welche Schriftarten in Ihnen verfügbar sind
convert
. Fangen wir also dort an.Das Obige zeigt ein Beispiel, jede Schriftart hat ähnliche Linien wie oben. Das Ausführen dieses Befehls zeigt übrigens, dass wir mehrere hundert Schriftarten haben:
Als nächstes werden wir die Aufgabe ausführen, unseren Charakter
\u2318
mit jeder Schriftart zu codieren, die wir haben. Das klingt kompliziert, ist aber ziemlich trivial mit einigen gut durchdachten Einzeiler über Bash.Dieses Snippet verwendet eine for-Schleife, um jede Schriftart zu durchlaufen und eine geänderte Version Ihres
convert
Befehls auszuführen .Jetzt schauen wir uns die Ergebnisse an. Viele der Schriftarten konnten diese bestimmte Glyphe nicht anzeigen, einige jedoch, was darauf hindeutet, dass es sich nicht unbedingt um einen Fehler in ImageMagick handelt, sondern vielmehr um eine Einschränkung der Schriftarten selbst. Hier ist eine Liste der Schriftarten, die ich hatte und die diese Glyphe anzeigen konnten.
Ich habe die gesamten ~ 260 resultierenden
.gif
Dateien visuell durchgesehen, um festzustellen, welche funktionierten und welche nicht. Hier ist ein Beispiel von einigen, die funktioniert haben, damit Sie sie sehen können.Verweise
quelle
-font DejaVu-Sans-Bold
zum Markieren eines Bildes mit dem Piratenschädel geholfen: Vielenperl -e 'binmode(STDOUT, ":utf8");print "Skull: \x{2620}";' |convert picture_orig.jpg -background none -fill red -pointsize 90 -font DejaVu-Sans-Bold label:@- -flatten picture_tagged.jpg
Dank für Ihre hervorragende Hilfe!