Ist es möglich, eine Schriftart mit der Schriftfamilie in ImageMagick zu rendern?
Ich habe alles versucht, was mir einfällt und nichts scheint zu funktionieren. Ich habe viel gesucht und ich kann anscheinend nichts finden, was dieses spezifische Problem angeht.
Ich benutze PHP, aber ich habe auch versucht, ImageMagick ohne Erfolg auf der Kommandozeile zu verwenden. Ich benutze ImageMagick 6.7.6 unter Linux. Hier ist, was ich bisher gemacht habe.
identify -list font
Befehl Hier ist die Beispielausgabe von identify -list font
für einige Schriften, mit denen ich getestet habe:
Wenn ich den vollständigen Namen der Schriftart festlege, funktioniert alles wie erwartet:
Wenn ich jedoch versuche, die Schriftfamilie zu verwenden (beide aufgelistet in identify -list font
und in type.xml aufgelistet), bekomme ich die Standard-Systemschrift:
Ich habe auch versucht, alle Parameter der Schriftart anzugeben, und es funktioniert wieder nicht:
Wenn ich einen ähnlichen Prozess durch PHP mache, gibt es tatsächlich einen Fehler zurück, sobald ich versuche, die Schriftfamilie des Zeichnungsobjekts zu setzen.
Dies ist der Fehler, der ausgelöst wird:
%Vor%
Genau wie bei der Befehlszeilenoption wird das Bild korrekt gerendert, wenn ich den vollständigen Namen der Schriftart festlege.
Von allem, was ich über die Konfiguration einer Schriftart für die Verwendung mit ImageMagick gefunden habe, sind die Schriftarten tatsächlich konfiguriert. Warum kann ich die Schriftarten nicht basierend auf der Schriftfamilie auswählen?
Ist das möglicherweise ein undokumentierter Fehler? Gibt es etwas, das mir fehlt?
Mir ist klar, dass ich einfach den vollständigen Namen der Schriftart angeben und damit fertig werden kann, aber es gibt einen speziellen Grund für mein Projekt, der es viel besser macht, die Schriftfamilie anzugeben.
Warum sollte die Schriftfamilie eine Option sein, wenn sie nicht funktioniert? Das sagt ImageMagick bezüglich der Schriftfamilien-Option:
Diese Einstellung schlägt eine Schriftfamilie vor, die ImageMagick verwenden sollte zum Rendern von Text. Wenn die Familie gefunden werden kann, wird sie benutzt; wenn nicht, a Standardschriftart (z. B. "Arial") oder eine Familie, von der bekannt ist, dass sie ähnlich ist substituiert (z. B. "Courier" könnte verwendet werden, wenn "System" angefordert wird aber nicht gefunden).
Irgendwelche Ideen sind sehr willkommen. An diesem Punkt bin ich ziemlich festgefahren.
BEARBEITEN:
Der Hauptgrund, warum ich lieber Schriftfamilien als vollständig benannte Schriftarten verwenden würde, liegt in der Eingabe, die ich verarbeite. Ich erhalte Dateien von Dritten, die bearbeitet werden müssen. Diese Dateien spezifizieren Schriften wie folgt:
Wenn ich den exakten Namen der Schriftart basierend auf diesen Informationen angeben müsste, müsste ich für jede mögliche Kombination aus Schriftfamilie und Attributen eine Zuordnung zum genauen Namen der Schriftart erstellen. Das wäre sehr schwierig zu verwalten, da Hunderte von Fonts zum System hinzugefügt werden.
Mir scheint, dass es einen Weg geben muss, ImageMagick dazu zu bringen, die exakte Schriftart basierend auf allen verfügbaren Details über die oben aufgelistete Schriftart abzurufen.
Wenn das nicht möglich ist, warum sollte ImageMagick dann überhaupt die Schriftfamilie angeben?
Dies liegt daran, wie Schriftfamilien funktionieren; Zum Beispiel umfasst die "Arial" -Schriftart spezifische Schriftdefinitionen für fett, kursiv, unterstrichen usw. Sie müssen spezifisch sein, wenn Sie eine Schriftart für Ihre Bilder auswählen.
Ich vermute, dass Sie Folgendes tun könnten, wenn Sie wirklich wollten:
-Regular
an das Ende an und versuche es erneut Aber Sie sollten nichts programmatisch mit der Schriftfamilie machen, es sei denn, Sie werden dazu gezwungen; -)
Meine Quelle von Imagick-Wissen kommt hauptsächlich von diesem Typ: Ссылка
Tags und Links php fonts imagemagick fontfamily