249建站之家:PHP生成中间带LOGO图像的二维码

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


查看演示 下载源码


查看原文:https://www.helloweba.com/view-blog-455.html,即可下载源码。


安装


使用 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()]);

运行以上代码,你会发现生成了一个中间,以上代码中:


setSize() :设置二维码图片的尺寸,数字整型,默认长宽是300px的图片。


setErrorCorrectionLevel() :设置纠错级别,可以是 LOW , MEDIUM , QUARTILE , HIGH


setForegroundColor() :设置前置色,rgb,默认黑色


setBackgroundColor() :设置背景色,rgb,默认白色


setLabel() :设置文字说明


setLogoPath() :设置中间logo路径地址


setLogoWidth() :设置logo宽度大小,数字


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


推荐

  • QQ空间

  • 新浪微博

  • 人人网

  • 豆瓣

取消