本文可以帮助你解决一下问题:
1,GD库添加文字水印无法换行
2,GD库添加文本实现居中显示
3,stil/gd-text扩展包添加文字为中文时,换行失效
GD库是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片,也可以给图片加水印。我们常用它生成网址验证码,图片缩略图,分享海报等等。
一,前置条件
1,确保你的PHP安装了GD扩展,并在php.ini启用了该扩展
2,phpinfo()查看GD扩展已开启:
image.png
3,以下每段代码快最后三句均为调试代码,用以在浏览器查看当前图片。所有代码块连接在一起时,需要去除调试代码
二,创建一幅图片(画布)
//1,添加一个画布$img,同时给这个画布添加背景图片$bg
$bgPath = './images/bg.jpg';
$bgInfo = getimagesize($bgPath);
$bgFun = 'imagecreatefrom'.image_type_to_extension($bgInfo[2], false);
//创建一个图: 460*830
$bg = $bgFun($bgPath);
$bgWidth = imagesx($bg); //背景宽度
$bgHeight = imagesy($bg); //背景高度
$img = imageCreatetruecolor($bgWidth,$bgHeight);
$color = imagecolorallocate($img, 0, 0, 0);
imagefill($img, 0, 0, $color);
//平滑的拷贝背景图到$img
imagecopyresampled($img,$bg,0,0,0,0,imagesx($bg),imagesy($bg),imagesx($bg),imagesy($bg));
//打印查看:
header('Content-Type: image/png;charset=UTF-8');//必须声明
imagepng($img);
exit;
三,为图片添加水印
//2,使用GD库在一张图片上面加文字:
$font = realpath("./font/simhei.ttf");
//显示的文字
$text = "A class drawing multiline and aligned text on pictures";
//设置字体颜色
$black = imagecolorallocate($img, 65, 65, 65);
//将ttf文字写到图片中
imagettftext($img, 16, 0