您现在的位置是:网站首页 > 心得笔记

endroid/qrcode PHP生成带LOGO二维码

盛悦2019-06-201019人围观
简介在开发中经常需要用户扫码从而进到一个宣传页面,一般情况下,我们直接使用最简单的不带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则正确输出二维码
}
...

运行效果图:

a.png

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
    
}
    
...

运行效果图:

微信图片_20190620133538.png


其他方法讲解:

//$qrCode->setMargin(100);

运行效果:

z.png

$qrCode->setEncoding('UTF-8');//设置编码
$qrCode->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0, 'a' => 0]);//前背景色
$qrCode->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255, 'a' => 0]);//后背景色