您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 其他 > 正文

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

发表于:2017-11-21 作者:helloweba 来源:PHP技术大全
PHP生成中间带LOGO图像的二维码

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

查看演示 下载源码

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

安装

使用 Composer 来安装这个库。


  1. composer require endroid/qrcode 

基本用法

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


  1. require_once('vendor/autoload.php'); 
  2. use Endroid\QrCode\QrCode; 
  3. $qrCode = new QrCode('Helloweba欢迎您!'); 
  4. header('Content-Type: '.$qrCode->getContentType()); 
  5. echo $qrCode->writeString(); 

高级用法

QrCode提供了许多方法参数设置,可以满足各种需求场景。比如需要生成中间带logo的二维码,需要保存二维码图片等。请看以下代码:


  1. require_once('vendor/autoload.php'); 
  2. use Endroid\QrCode\ErrorCorrectionLevel; 
  3. use Endroid\QrCode\LabelAlignment; 
  4. use Endroid\QrCode\QrCode; 
  5. use Symfony\Component\HttpFoundation\Response; 
  6. // Create a basic QR code 
  7. $qrCode = new QrCode('Life is too short to be generating QR codes'); 
  8. $qrCode->setSize(300); 
  9. // Set advanced options 
  10. $qrCode 
  11.     ->setWriterByName('png') 
  12.     ->setMargin(10) 
  13.     ->setSize(200) 
  14.     ->setEncoding('UTF-8') 
  15.     ->setErrorCorrectionLevel(ErrorCorrectionLevel::HIGH) 
  16.     ->setForegroundColor(['r' => 0, 'g' => 0, 'b' => 0]) 
  17.     ->setBackgroundColor(['r' => 255, 'g' => 255, 'b' => 255]) 
  18.     ->setLabel('手机扫一扫', 12) 
  19.     ->setLogoPath('logo.png') 
  20.     ->setLogoWidth(64) 
  21.     ->setValidateResult(false) 
  22. // Directly output the QR code 
  23. header('Content-Type: '.$qrCode->getContentType()); 
  24. echo $qrCode->writeString(); 
  25. // Save it to a file 
  26. //$qrCode->writeFile(__DIR__.'/qrcode.png'); 
  27. // Create a response object 
  28. $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宽度大小,数字