Heim  >  Artikel  >  Backend-Entwicklung  >  Was soll ich tun, wenn die Funktion imagettftext() der GD-Bibliothek in PHP keine Bilder generieren kann?

Was soll ich tun, wenn die Funktion imagettftext() der GD-Bibliothek in PHP keine Bilder generieren kann?

WBOY
WBOYOriginal
2016-12-01 01:27:311902Durchsuche

Ich möchte basierend auf dem Eingabetext ein Bild in einer bestimmten Schriftart generieren. Das richtige Bild kann nicht generiert werden.

Bilder im Beispiel:

Was soll ich tun, wenn die Funktion imagettftext() der GD-Bibliothek in PHP keine Bilder generieren kann?

Mein Bild:

Was soll ich tun, wenn die Funktion imagettftext() der GD-Bibliothek in PHP keine Bilder generieren kann?

Code:

<code><?php
// Set the content-type
header('Content-Type: image/png');

// Create the image
$im = imagecreatetruecolor(400, 30);

// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// The text to draw
$text = 'Testing...';
// Replace path by your own font path
//$font = 'arial.ttf';
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

// Name the font to be used (note the lack of the .ttf extension)
$font = 'aaa';//同目录下有个aaa.ttf字体文件,true type的。

// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?></code>

In der von mir verwendeten lnmp-Ein-Klick-Paketumgebung gibt es --with-free-type-dir in der Kompilierung,

<code>'./configure' '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php/etc' '--enable-fpm' '--with-fpm-user=www' '--with-fpm-group=www' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-iconv-dir' '--with-freetype-dir=/usr/local/freetype' '--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--with-libxml-dir=/usr' '--enable-xml' '--disable-rpath' '--enable-bcmath' '--enable-shmop' '--enable-sysvsem' '--enable-inline-optimization' '--with-curl' '--enable-mbregex' '--enable-mbstring' '--with-mcrypt' '--enable-ftp' '--with-gd' '--enable-gd-native-ttf' '--with-openssl' '--with-mhash' '--enable-pcntl' '--enable-sockets' '--with-xmlrpc' '--enable-zip' '--enable-soap' '--with-gettext' '--disable-fileinfo' '--enable-intl' '--with-xsl'</code>

Darüber hinaus wird auch der freie Typ unterstützt:

Was soll ich tun, wenn die Funktion imagettftext() der GD-Bibliothek in PHP keine Bilder generieren kann?


Update:
Nachdem ich die Schriftart simhei.ttf (schwarzer Körper, normal) verwendet habe, kann sie normal angezeigt werden. . .

Antwortinhalt:

Ich möchte basierend auf dem Eingabetext ein Bild in einer bestimmten Schriftart generieren. Das richtige Bild kann nicht generiert werden.

Bilder im Beispiel:

Was soll ich tun, wenn die Funktion imagettftext() der GD-Bibliothek in PHP keine Bilder generieren kann?

Mein Bild:

Was soll ich tun, wenn die Funktion imagettftext() der GD-Bibliothek in PHP keine Bilder generieren kann?

Code:

<code><?php
// Set the content-type
header('Content-Type: image/png');

// Create the image
$im = imagecreatetruecolor(400, 30);

// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// The text to draw
$text = 'Testing...';
// Replace path by your own font path
//$font = 'arial.ttf';
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

// Name the font to be used (note the lack of the .ttf extension)
$font = 'aaa';//同目录下有个aaa.ttf字体文件,true type的。

// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?></code>

In der von mir verwendeten lnmp-Ein-Klick-Paketumgebung gibt es --with-free-type-dir in der Kompilierung,

<code>'./configure' '--prefix=/usr/local/php' '--with-config-file-path=/usr/local/php/etc' '--enable-fpm' '--with-fpm-user=www' '--with-fpm-group=www' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-iconv-dir' '--with-freetype-dir=/usr/local/freetype' '--with-jpeg-dir' '--with-png-dir' '--with-zlib' '--with-libxml-dir=/usr' '--enable-xml' '--disable-rpath' '--enable-bcmath' '--enable-shmop' '--enable-sysvsem' '--enable-inline-optimization' '--with-curl' '--enable-mbregex' '--enable-mbstring' '--with-mcrypt' '--enable-ftp' '--with-gd' '--enable-gd-native-ttf' '--with-openssl' '--with-mhash' '--enable-pcntl' '--enable-sockets' '--with-xmlrpc' '--enable-zip' '--enable-soap' '--with-gettext' '--disable-fileinfo' '--enable-intl' '--with-xsl'</code>

Darüber hinaus wird auch der freie Typ unterstützt:

Was soll ich tun, wenn die Funktion imagettftext() der GD-Bibliothek in PHP keine Bilder generieren kann?


Update:
Nachdem ich die Schriftart simhei.ttf (schwarzer Körper, normal) verwendet habe, kann sie normal angezeigt werden. . .

imagettftext unterstützt TrueType-Schriftarten und imagepstext unterstützt PostScript Type1-Schriftarten. Sie müssen also die entsprechende Schriftart finden, damit sie wirksam wird.

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