PHP生成中间带LOGO图像的二维码

安装

使用Composer来安装这个库。

composer require endroid/qrcode

基本用法

简单几行代码,就可以生成一个普通的二维码:

    require_once('vendor/autoload.php');
    use Endroid\QrCode\QrCode;
    $qrCode = new QrCode('Thinkphp欢迎您!');
    header('Content-Type: '.$qrCode->getContentType());
    echo $qrCode->writeString();
    高级用法
    QrCode提供了许多方法参数设置,可以满足各种需求场景。比如需要生成中间带logo的二维码,需要保存二维码图片等。请看以下代码:
    require_once('vendor/autoload.php');
    use Endroid\QrCode\ErrorCorrectionLevel;
    use Endroid\QrCode\LabelAlignment;
    use Endroid\QrCode\QrCode;
    use Symfony\Component\HttpFoundation\Response;
    // Create a basic QR code
    $qrCode = new QrCode('Life is too short to be generating QR codes');
    $qrCode->setSize(300);
    // Set advanced options
    $qrCode
        ->setWriterByName('png')
        ->setMargin(10)
        ->setSize(200)
        ->setEncoding('UTF-8')
        ->setErrorCorrectionLevel(ErrorCorrectionLevel::HIGH)
        ->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0])
        ->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255])
        ->setLabel('手机扫一扫', 12)
        ->setLogoPath('logo.png')
        ->setLogoWidth(64)
        ->setValidateResult(false)
    ;
    // Directly output the QR code
    header('Content-Type: '.$qrCode->getContentType());
    echo $qrCode->writeString();
    // Save it to a file
    //$qrCode->writeFile(__DIR__.'/qrcode.png');
    // Create a response object
    $response = new Response($qrCode->writeString(), Response::HTTP_OK, ['Content-Type' => $qrCode->getContentType()]);
    运行以上代码,你会发现生成了一个中间有logo小图片的二维码,以上代码中:
    setSize():设置二维码图片的尺寸,数字整型,默认长宽是300px的图片。
    setErrorCorrectionLevel():设置纠错级别,可以是LOW,MEDIUM,QUARTILE,HIGH
    setForegroundColor():设置前置色,rgb,默认黑色
    setBackgroundColor():设置背景色,rgb,默认白色
    setLabel():设置文字说明
    setLogoPath():设置中间logo路径地址
    setLogoWidth():设置logo宽度大小,数字

 

更多THinkPHP源码请访问:http://t.cn/RmZekiV

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值