1.下载phpqrcode扩展包,存在百度网盘,解压后放在extend目录下
image.png
2.实现方法
require_once '../extend/phpqrcode/phpqrcode.php'; #引入文件
$reg_url = ''; //todo 页面地址
$url = $reg_url . '?code=' . $param['code']; #拼接参数 参数名任意
$errorCorrectionLevel = 'H'; #容错级别
$matrixPointSize = 6; #生成图片大小
$file_url = "./upload/qrcode/" . date('ymd') . '_' . substr(md5(rand(00001, 99999)), 0, 16) . ".png"; #生成图片路径
if (file_exists($file_url)) {
$file_url = substr($file_url, 1);
return resultArray(1, 'success1', $file_url);
}
$object = new \QRcode();
//新建目录 - 移动logo文件
if (!is_dir('./upload/qrcode')) { #创建目录
mkdir('./upload/qrcode');
}
$logo = './upload/qrcode/qrcode_logo.jpg'; #准备好的logo图片
if (!file_exists('./upload/qrcode/qrcode_logo.jpg')) { #移动文件,防止权限不足
copy('./upload/common/images/logo1.jpg', './upload/qrcode/qrcode_logo.jpg');
}
$res = $object->png($url, $file_url, $errorCorrectionLevel, $matrixPointSize, 1);
if ($logo !== FALSE && file_exists($file_url) && file_exists($logo)) {
$QR = imagecreatefromstring(file_get_contents($file_url));
$logo = imagecreatefromstring(file_get_contents($logo));
$QR_width = imagesx($QR);//二维码图片宽度
$QR_height = imagesy($QR);//二维码图片高度
$logo_width = imagesx($logo);//logo图片宽度
$logo_height = imagesy($logo);//logo图片高度
$logo_qr_width = $QR_width / 5;
$scale = $logo_width / $logo_qr_width;
$logo_qr_height = $logo_height / $scale;
$from_width = ($QR_width - $logo_qr_width) / 2;
//重新组合图片并调整大小
imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
} else {
return resultArray(0, '文件错误');
}
imagepng($QR, $file_url); #重新生成的图片
$file_url = substr($file_url, 1);
return resultArray(1, 'success', $file_url);
网友评论