Heim >Backend-Entwicklung >PHP-Tutorial >Problem mit der Imagemagic-Einstellung der Schriftart
Ich habe die Imagick-Komponente sowie die zu verwendenden Schriftarten in der virtuellen Maschine installiert.
Im Bild:
Imagick-Zeichnungsteil des Codes lautet wie folgt:
<code> $imagick = new Imagick($template_image); $draw = new ImagickDraw(); $draw->setFillColor('black'); $draw->setFont('/usr/share/fonts/wqy-microhei.ttc'); $draw->settextencoding('utf-8'); $draw->setFontSize(30); imagick_add_text($imagick,$draw,"测试", 302, 688, 130,'#33BAF6');</code>
Schreibfunktion:
<code>function imagick_add_text(&$imagick, &$draw, $text, $x = 0, $y = 0, $font_size = 12, $fill_color = 0, $text_kerning = 0) { if (isset($font_size)) $draw->setFontSize($font_size); if (isset($fill_color)) $draw->setFillColor($fill_color); if (isset($text_kerning)) $draw->setTextKerning($text_kerning); $imagick->annotateImage($draw, $x, $y, 0, $text); }</code>
Das Problem besteht nun darin, dass $draw->setFont()
in diesem Schritt kein Fehler auftritt, was darauf hinweist, dass die Schriftarteinstellung erfolgreich war, $imagick->annotateImage()
das heißt, im Zeichenschritt liegt ein Fehler vor.
Warum handelt es sich um ein Schriftartenproblem?
Hinweis:
1. Ich verwende die vagrant virtuelle Umgebung für die Entwicklung.
2. In der Testumgebung ist die gleiche Schriftart installiert und imagick wird zum erfolgreichen Zeichnen und Schreiben verwendet. (Die Schriftarten der Testumgebung werden vom Betriebs- und Wartungspersonal installiert)
Ich habe die Imagick-Komponente sowie die zu verwendenden Schriftarten in der virtuellen Maschine installiert.
Im Bild:
Imagick-Zeichnungsteil des Codes lautet wie folgt:
<code> $imagick = new Imagick($template_image); $draw = new ImagickDraw(); $draw->setFillColor('black'); $draw->setFont('/usr/share/fonts/wqy-microhei.ttc'); $draw->settextencoding('utf-8'); $draw->setFontSize(30); imagick_add_text($imagick,$draw,"测试", 302, 688, 130,'#33BAF6');</code>
Schreibfunktion:
<code>function imagick_add_text(&$imagick, &$draw, $text, $x = 0, $y = 0, $font_size = 12, $fill_color = 0, $text_kerning = 0) { if (isset($font_size)) $draw->setFontSize($font_size); if (isset($fill_color)) $draw->setFillColor($fill_color); if (isset($text_kerning)) $draw->setTextKerning($text_kerning); $imagick->annotateImage($draw, $x, $y, 0, $text); }</code>
Das Problem besteht nun darin, dass $draw->setFont()
in diesem Schritt kein Fehler auftritt, was darauf hinweist, dass die Schriftarteinstellung erfolgreich war, $imagick->annotateImage()
das heißt, im Zeichenschritt liegt ein Fehler vor.
Warum handelt es sich um ein Schriftartenproblem?
Hinweis:
1. Ich nutze die vagrant virtuelle Umgebung für die Entwicklung.
2. In der Testumgebung ist die gleiche Schriftart installiert und imagick wird zum erfolgreichen Zeichnen und Schreiben verwendet. (Die Schriftarten der Testumgebung werden vom Betriebs- und Wartungspersonal installiert)