对码当歌,猿生几何?

使用GD库创建透明背景文字图片

利用GD库可以绘制透明背景的图片。具体代码如下。

// 创建画布
$resImg = imagecreatetruecolor($arrOptions['width'], $arrOptions['height']);
// 创建背景色,注意需要创建为透明背景,需要alpha为127
$intBgColor = imagecolorallocatealpha($resImg, 255, 0, 0, 127);
// 字体颜色
$intFontColor = imagecolorallocate($resImg, $intRed, $intGreen, $intBlue);
// 关闭混合模式
imagealphablending($resImg, false);
// 填充背景
imagefilledrectangle($resImg, 0, 0, $arrOptions['width'], $arrOptions['height'], $intBgColor);
$arrBox = imagettfbbox($arrOptions['fontSize'], 0, $arrOptions['fontFamily'], $strText);
$intAscent = abs($arrBox[7]);
$intDescent = abs($arrBox[1]);
$intHeight = $intAscent + $intDescent;
$intY = floor(($arrOptions['height'] -$intHeight)/2 + $intAscent);
$intX = floor(($arrOptions['width'] - ($intFontHeight * $intLen))/2);
imagettftext($resImg, $arrOptions['fontSize'], 0, $intX, $intY, $intFontColor, $arrOptions['fontFamily'], $strText);
// 保留透明度值
imagesavealpha($resImg, true);
// 本地临时文件路径
$strLocalTmpPath = './test.png';
// 保存图片为png
imagepng($resImg, $strLocalTmpPath);
// 清除画布资源
imagedestroy($resImg);