Heim >Backend-Entwicklung >PHP-Tutorial >Problem mit der Imagemagic-Einstellung der Schriftart

Problem mit der Imagemagic-Einstellung der Schriftart

WBOY
WBOYOriginal
2016-08-25 10:37:311766Durchsuche

Ich habe die Imagick-Komponente sowie die zu verwendenden Schriftarten in der virtuellen Maschine installiert.
Im Bild:
Problem mit der Imagemagic-Einstellung der Schriftart

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)

Antwortinhalt:

Ich habe die Imagick-Komponente sowie die zu verwendenden Schriftarten in der virtuellen Maschine installiert.
Im Bild:
Problem mit der Imagemagic-Einstellung der Schriftart

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)

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn