[PHP]使用 imagettftext 產生圖片文字出不來,一片空白


需要使用 PHP的 GD圖片模組產生文字,
可是使用 imagettftext 卻發現畫面一片空白嗎?

以下是一個使用 PHP 產生圖片的例子:

<?php
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';

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

解決方式

PHP的GD函數imagettftext()要注意默認字符編碼。

開啟 phpinfo() 檢視是否有以下資訊,確認伺服器有安裝 GD:
GD Support enabled
GD headers Version 2.1.3
GD library Version 2.1.3
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.4.11
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 6b
PNG Support enabled
libPNG Version 1.5.13
WBMP Support enabled
XPM Support enabled
libXpm Version 30411
XBM Support enabled
WebP Support enabled



方式1:
指定字體文件的完整路徑。
例如:
$font = "/home/web/public_html/Arial.ttf";


方式2:
省略副檔名 .ttf 並使用 GDFONTPATH。 文件建議如下:
在許多情況下,字體位於與使用腳本的腳本相同的目錄中,以下技巧將減輕任何包含問題。
 
utenv('GDFONTPATH=' . realpath('.'));
$font = "Arial";



 

回上一頁

相關文章:

喜歡這篇文章嗎?立即分享

Posted : / Views: 316