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二维码的地址