
260
|
第
10
章
图片
$font = "c:/wamp64/www/bookcode/chapter_10/IndieFlower.ttf" ;
//
创建、缓存、返回它
$image = imagecreatefrompng("button.png");
$black = imagecolorallocate($image, 0, 0, 0);
if ($text) {
//
计算文本位置
$tsize = imagettfbbox($size, 0, $font, $text);
$dx = abs($tsize[2] - $tsize[0]);
$dy = abs($tsize[5] - $tsize[3]);
$x = (imagesx($image) - $dx ) / 2;
$y = (imagesy($image) - $dy ) / 2 + $dy;
//
绘制文本
imagettftext($image, $size, 0, $x, $y, $black, $font, $text);
//
保存图片文件
imagepng($image, "{$_SERVER['DOCUMENT_ROOT']}{$cacheDir}{$file}.png");
}
header("Content-Type: image/png");
imagepng($image);
示例
10-10
中的机制有一个重大的缺点
:按钮文本本身不能包含任何对文件名来说非法
的字符。尽管如此,这仍然是一种比较有效的缓存动态图片的方式。如果修改了按钮的 ...