>백엔드 개발 >PHP 튜토리얼 >PHP GD 라이브러리의 imagettftext() 함수가 이미지 생성에 실패하면 어떻게 해야 합니까?

PHP GD 라이브러리의 imagettftext() 함수가 이미지 생성에 실패하면 어떻게 해야 합니까?

WBOY
WBOY원래의
2016-12-01 01:27:311928검색

입력된 텍스트를 기반으로 특정 글꼴로 그림을 생성하고 싶습니다. php.net의 예에 따르면 올바른 그림이 생성되지 않습니다. 어떻게 해야 합니까?

샘플 사진:

PHP GD 라이브러리의 imagettftext() 함수가 이미지 생성에 실패하면 어떻게 해야 합니까?

내 사진:

PHP GD 라이브러리의 imagettftext() 함수가 이미지 생성에 실패하면 어떻게 해야 합니까?

코드:

<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>

내가 사용하는 lnmp 원클릭 패키지 환경에는 컴파일에 --with-free-type-dir이 있습니다.

<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>

추가로 자유 형식도 지원됩니다:

PHP GD 라이브러리의 imagettftext() 함수가 이미지 생성에 실패하면 어떻게 해야 합니까?


업데이트:
simhei.ttf(Hell Regular) 글꼴을 사용하도록 변경한 후 정상적으로 표시되는 이유는 무엇입니까? . .

답글 내용:

입력한 텍스트를 기반으로 특정 글꼴로 그림을 생성하고 싶습니다. php.net의 샘플에 따르면 올바른 그림이 생성되지 않습니다.

샘플 사진:

PHP GD 라이브러리의 imagettftext() 함수가 이미지 생성에 실패하면 어떻게 해야 합니까?

내 사진:

PHP GD 라이브러리의 imagettftext() 함수가 이미지 생성에 실패하면 어떻게 해야 합니까?

코드:

<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>

내가 사용하는 lnmp 원클릭 패키지 환경에는 컴파일에 --with-free-type-dir이 있습니다.

<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>

추가로 자유 형식도 지원됩니다:

PHP GD 라이브러리의 imagettftext() 함수가 이미지 생성에 실패하면 어떻게 해야 합니까?


업데이트:
simhei.ttf(Black Body Regular) 글꼴을 사용하도록 변경한 후 정상적으로 표시되는 이유는 무엇입니까? . .

imagettftext는 TrueType 글꼴을 지원하고, imagepstext는 PostScript Type1 글꼴을 지원합니다. 따라서 적용하려면 해당 글꼴을 찾아야 합니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.