利用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);