您现在的位置是:网站首页 > 心得笔记
endroid/qrcode PHP生成带LOGO二维码
简介在开发中经常需要用户扫码从而进到一个宣传页面,一般情况下,我们直接使用最简单的不带LOGO的二维码也一样可以实现,但是有时候,有的用户可能想要把自己的头像等放到二维码中,这就需要我们生成带LOGO的二维码,这里给出一个demo
1、composer安装endroid/qrcode
composer require endroid/qr-code
2、基本用法
use Endroid\QrCode\QrCode;
...
public function test () {
$rqCode = new QrCode('http://blog.blonglee.me');//这里的参数是你需要扫码看到的页面url
header('Content-Type:'.$qrCode->getContentType());
echo $qrCode->writeString();
exit;//不加exit;二维码图片就会直接以字符串的形式输出 加exit则正确输出二维码
}
...运行效果图:

3、高级用法(LOGO)
use Endroid\QrCode\QrCode;
use Endroid\QrCode\ErrorCorrectionLevel;
...
public function test () {
$set_log =true;//是否带有LOGO
$qrCode = new QrCode('http://blog.blonglee.me');
if($set_log ==true){
$qrCode->setLogoPath($_SERVER['DOCUMENT_ROOT'] .'/front/images/t04.jpg');//LOGO地址要使用绝对地址
$qrCode->setLogoWidth(150,200);//两个参数 LOGO高和宽
}
$qrCode->setErrorCorrectionLevel(new ErrorCorrectionLevel(ErrorCorrectionLevel::HIGH));
header('Content-Type: '.$qrCode->getContentType());// Directly output the QR code
//二维码图片输出形式1 直接输出
echo $qrCode->writeString();
//二维码图片输出形式2 保存到指定目录不输出
$path =$_SERVER['DOCUMENT_ROOT'] .'/front/images/1.jpg';//这里保存图片后缀使用jpg、png自愿
$qrCode->writeFile($path);// Save it to a file
}
...运行效果图:

其他方法讲解:
//$qrCode->setMargin(100);
运行效果:

$qrCode->setEncoding('UTF-8');//设置编码
$qrCode->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]);//前背景色
$qrCode->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]);//后背景色上一篇:s使用idrag完成模块拖动