php利用Qrcode生成带logo二维码
1 , 下载phpqrcode类库
2, 引入qrcode库
我用的是TP框架,直接将下载好的qrcode库放入TP框架的核心框架下的Vendor文件下,vendor('phpqrcode.phpqrcode'); //引入
3,代码实例
vendor("phpqrcode.phpqrcode"); //引入phpqrcode库
$value = 'http://www.baidu.com'; //二维码内容
容错级别:
L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%);
$errorCorrectionLevel = 'L'; //容错级别
$matrixPointSize = 6;//生成图片大小
$img_name_url = 'qrcode.png';
\QRcode::png($value, $img_name_url , $errorCorrectionLevel, $matrixPointSize, 2); //生成二维码图片,现在已经生成了不带logo的二维码图片img_name_url是生成的二维码保存的地址
$logo = 'logocode.png';//准备好的logo图片
$QR = 'qrcode.png';//已经生成的原始二维码图,就是上面生成的二维码图,也可以是你自己的二维码图片,这个不固定
if ($logo !== FALSE) {
$QR = imagecreatefromstring(file_get_contents($QR)); //得到二维码图片 return true | false
$logo = imagecreatefromstring(file_get_contents($logo)); //得到logo图片 return true | false
$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); //重新组合图片并调整大小
}
//输出图片
// Header("Content-type: image/png");
$imgs = './Qrcode/qrcodes.png'; //填写二维码图片地址
ImagePng($QR , $imgs); //保存生成的带logo的二维码
echo $imgs; //这就是带logo二维码的地址