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

原创文章 作者:月光光 2017年11月17日 20:13helloweba.com 标签:PHP  生成二维码 

这是一个二维码生成器,它可以帮助你以简单的方式生成二维码,并且可以设置二维码中间的小logo图标。使用非常简单,并且提供了一个Symfony包,可以快速整合到你的项目中。

安装

使用Composer来安装这个库。

composer require endroid/qrcode

基本用法

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

require_once('vendor/autoload.php');

use Endroid\QrCode\QrCode;

$qrCode = new QrCode('Helloweba欢迎您!');

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宽度大小,数字

更多有关QrCode的信息请参照该项目在github上的地址:https://github.com/endroid/QrCode

声明:本文为原创文章,helloweba.net和作者拥有版权,如需转载,请注明来源于helloweba.net并保留原文链接:https://www.helloweba.net/php/455.html

5条评论

  • 和拖鞋在纠结

    相对路径不行,必须要绝对路径才能识别font?

  • 和拖鞋在纠结

    gd freetype版本不对....不能read font

  • yoyo

    大神终于不是面向过程了

  • xiaoli

    composer哪个怎么安装呢?

  • 白米饭

    autoload.php里面是什么代码?

    月光光 回复: autoload是composer安装时自动生成的文件,用于自动加载各组件。