使用PHP生成中间带logo标志的二维码的方法

时间:2017-11-24 15:03:33 类型:PHP
字号:    

我们程序员在实际的项目开发过程中,因项目需求需要生成中间带logo标志的二维码,今天南昌雅腾教育分享使用php生成中间带logo标志的二维码的方法,供大家参考使用学习。

这是一个二维码生成器,它可以帮助你以简单的方式生成二维码,并且可以设置二维码中间的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宽度大小,数字


南昌雅腾教育专注PHP软件开发+WEB前端开发技术培训,小班面授+手把手辅导+理论与项目开发结合教学的培养方式。