/**
*
*生成二维码图片
*@param $url 二维码链接
*@param $logo 二维码中间的logo地址
*/
function createQrCode($url, $logo = null){
$errorCorrectionLevel = 'L'; //容错级别
$matrixPointSize = 6; //生成图片大小
$QR = 'qrcode.png'; //已经生成的原始二维码图
QRcode::png($url, $QR, $errorCorrectionLevel, $matrixPointSize, 2);
$logo_rs = "/tmp/".time().".png";//文件存放路径
if ($logo) { //带有logo
$QR = imagecreatefromstring(file_get_contents($QR));
$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 / 4.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);
//输出图片
imagepng($QR, $logo_rs);
//重新组合图片并调整大小
} else { //不带logo
QRcode::png($url, $logo_rs, $errorCorrectionLevel, $matrixPointSize, 2);
}
return $logo_rs;
}
其中,QRcode类文件的代码可以在这上面下载:https://sourceforge.net/projects/phpqrcode/files/,下载解压后会有一个phpqrcode.php文件,引入即可。
原始的二维码图片qrcode.png如下: