先看效果图
以下是phpqrcode类文件(里面包含字体文件,可直接用)
链接: https://pan.baidu.com/s/1u_3AAFtFxWuRdsCxJtjpyQ
提取码:cy2e
生成二维码加汉字
/*
url:二维码保存文件路径
code:二维码图片名
content:二维码下方文字内容(这里存的是一维数组,每个下标对应的每行文字,循环显示)
*/
public function getQRcode($url, $code, $content){
// 调用phpqrcode
Vendor('phpqrcode.phpqrcode');
$qrcode = new \QRcode();
// 拼接二维码图片地址
$shareimg = 'fail'.$code . '.png';
$shareimg = './vendor/phpqrcode/img/'. $shareimg;
// 首先生成一张不带文字的二维码图片
/*
参数1:二维码里的内容
参数2:生成二维码的保存地址
参数3:二维码可被覆盖的百分比,可以控制二维码的容错率(L->7%, M->15%, Q->25%, H->30%)
参数4:生成二维码图片的大小
参数5:控制生成二维码图片的空白区域大小
*/
$qrcode->png($code, $shareimg, 'M', 12, 13);
// 先读取存好的二维码图片,再追加文字
$image = imagecreatefrompng($shareimg);
// 字体文件
$font = './vendor/phpqrcode/font/simsun.ttc';
// 文字颜色
$color = imagecolorallocate($image,0,0,0);
// 创建二维码图片下文字
foreach ($content as $key => $value) {
if($key==0){
/*
参数1:读取现有的二维码图片
参数2:字体大小
参数3:字体倾斜的角度
参数4,5:文字的x,y轴坐标
参数6:文字的颜色
参数7:字体的样式(引入的字体文件)
参数8:二维码下方的文字内容
*/
imagettftext($image, 15, 0, 150, 430, $color, $font, $value); // 创建文字(编码)
}else{
// 这里每行加24,设置的是文字的行距
imagettftext($image, 15, 0, 150, $key*24+430, $color, $font, $value); // 创建文字(循环内容)
}
}
// 保存新生成的二维码图片
imagepng($image, $url);
}