首頁  >  文章  >  後端開發  >  PHP圖片處理(中)- 繪製文字

PHP圖片處理(中)- 繪製文字

齐天大圣
齐天大圣原創
2020-05-03 10:58:07143瀏覽

繪製普通文字

函數:imagestring()

imagestring ( resource $image , int $font, int $x, int $y, string $s, int $col) : bool

imagestring() 用col    顏色將字串s 畫到image    所代表的圖像的x, y    座標處(這是字串左上角座標,整個影像的左上角為0,0)。如果    font 是 1,2,3,4 或 5,則使用內建字型。

使用imagestring來繪製字體,有點事很簡單。但缺陷也非常明顯,字體大小只有1到5,不支援中文字元。

<?php
/**绘制文字**/
$imgHandler = imagecreatetruecolor(100,100);
// 绘制矩形并填充
$borderCol = imagecolorallocate($imgHandler, 23, 32, 200);
imagefilledrectangle($imgHandler, 0, 0, 99, 99, $borderCol);
// 绘制水平方向文字
$strColor = imagecolorallocate($imgHandler, mt_rand(0,100), mt_rand(0, 100), mt_rand(0, 100));
imagestring($imgHandler, 5,1, 45, &#39;hello world&#39;, $strColor);
// 垂直方向文字
imagestringUp($imgHandler, 5,45, 99, &#39;hello world&#39;, $strColor);
header("Content-Type:image/png");
imagepng($imgHandler);
imagedestroy($imgHandler);

使用字體庫繪製文字

#使用imagestring來繪製文字,非常簡單。但有幾個缺陷。首先:它不能繪製中文,另外,使用imagestring繪製出的文字不會太大。

這裡我們使用imagettftext來繪製文字,imagettftext除了能設定字體大小外,還可以給字體設定傾斜角度。

使用前,我們需要找一些ttf格式的字型。在windows系統下的C:\Windows\Fonts目錄,有許多字型。

<?php
/* 使用imagettftext向图像正中写文字 */

$im = imagecreatetruecolor(300, 300);
$bgColor = imagecolorallocate($im, 222,222,222);
imagefill($im,0, 0, $bgColor);
$size = 30;
$angle = 0;
$font = &#39;D:\wwwroot\stdphp\img\font/msyhbd.ttf&#39;;
$text = &#39;大圣到此一游&#39;;

//获取文字信息
$info = imagettfbbox($size, $angle, $font, $text);
$minx = min($info[0], $info[2], $info[4], $info[6]);
$maxx = max($info[0], $info[2], $info[4], $info[6]);
$miny = min($info[1], $info[3], $info[5], $info[7]);
$maxy = max($info[1], $info[3], $info[5], $info[7]);

///* 计算文字初始坐标和尺寸 */
$x = $minx;
$y = abs($miny);
$w = $maxx - $minx;
$h = $maxy - $miny;

/* 随机文字颜色 */
$textColor = imagecolorallocate($im, mt_rand(0,150), mt_rand(0,150), mt_rand(0,150));
imagettftext($im, $size, $angle, (300 - $w) / 2 + $x, (300 - $h) / 2 + $y, $textColor, $font, $text);
header("Content-type:image/png");
imagepng($im);
imagedestroy($im);

繪製的圖片效果如下:

PHP圖片處理(中)- 繪製文字

以上是PHP圖片處理(中)- 繪製文字的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn