首页 > 其他分享 >webman中使用Endroid/QrCode生成二维码

webman中使用Endroid/QrCode生成二维码

时间:2023-03-30 15:44:35浏览次数:43  
标签:use webman new Endroid path QrCode logo

一、使用composer下载扩展包

composer require endroid/qr-code

二、实现代码

use Endroid\QrCode\Color\Color;
use Endroid\QrCode\Encoding\Encoding;
use Endroid\QrCode\ErrorCorrectionLevel\ErrorCorrectionLevelLow;
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Label\Label;
use Endroid\QrCode\Logo\Logo;
use Endroid\QrCode\RoundBlockSizeMode\RoundBlockSizeModeMargin;
use Endroid\QrCode\Writer\PngWriter;

class QR_Code
{
    private $logo = null;
    private $label = null;
    private $size = 200;
    
    public function __construct() 
    {
        // 
    }
    
    /**
     * 设置二维码LOGO
     */
    public function setLogo($logo_path)
    {
        $this->logo = Logo::create($logo_path)   //logo的照片路径
            ->setResizeToWidth(20);             //logo的大小
    }
    
    /**
     * 设置二维码下方文字
     */
    public function setLabel($text)
    {
        $this->label = Label::create($text)      //二维码下面的文字
            ->setTextColor(new Color(0, 0, 0)); //文字的颜色        
    }
    
    /**
     * 生成二维码
     * @param string $url [链接]
     * @return string  [type]  [返回图片path]
     */
    public function create(string $url)
    {
        $writer = new PngWriter();
        
        $qrCode = QrCode::create($url)//跳转的url地址
            ->setEncoding(new Encoding('UTF-8'))    //设置编码格式
            ->setErrorCorrectionLevel(new ErrorCorrectionLevelLow())    //设置纠错级别为低
            ->setSize($this->size)      //大小
            ->setMargin(20)             //边距
            ->setRoundBlockSizeMode(new RoundBlockSizeModeMargin())     //设置圆轮大小边距
            ->setForegroundColor(new Color(0, 0, 0))        //前景色
            ->setBackgroundColor(new Color(255, 255, 255));       //背景色
        
        $result = $writer->write($qrCode, $this->logo, $this->label);
        
        $result->getString();
        
        $file_path = runtime_path() . "/temp/qrcode/";
        
        if (!is_dir($file_path)) {
            mkdir($file_path, 0755, true);
        }
        
        $qrcode = time() . mt_rand(0, 9999). '.png';
        
        $result->saveToFile($file_path . $qrcode);
        
        return $file_path . $qrcode;
    }
}

 

标签:use,webman,new,Endroid,path,QrCode,logo
From: https://www.cnblogs.com/liyong2019/p/17272992.html

相关文章

  • 二维码QRCode
    一、二维码介绍 二维码的应用越来越多,开发中会经常使用,这里主要从二维码的介绍、客户端生成与服务器端生成三个方面讲解二维码。二维码又称二维条码,常见的二维码为QRCode,Q......
  • JAVA利用google的zxing快速生成QRCode
    利用google的zxing快速生成QRCode1.导入jar包,如果是非maven工程就去mvnrepository.com搜索zxing,下载本jar包即可<dependency><groupId>com.google.zxing</groupId><......
  • vue实现扫描二维码(@zxing/library和vue-qrcode-reader)
    ###环境vue2 "@zxing/library": "^0.19.1", "vue-qrcode-reader": "^3.1.0",扫码方式有三种,第一微信jssdk自带的扫一扫功能,优点:无兼容性问题,只要微信能扫一扫......
  • vue-qrcode-reader实现简单的实时扫一扫功能
    1.下载与安装插件vue-qecode-reader官网:https://gruhn.github.io/vue-qrcode-reader/demos/Simple.htmlnpminstall--savevue-qecode-reader或者cnpminstall-......
  • C# 使用QRCoder生成二维码
    @目录简介第一步安装Nuget包QRCoder第二步创建一个公共类QRCoderHelper.cs第三步窗体代码第四步实现方式简介最近瞎琢磨的一些小东西,也算是一个比较完整的二维码......
  • C# 使用QRCoder生成二维码
    简介最近瞎琢磨的一些小东西,也算是一个比较完整的二维码生成了,上手也很快,可自行扩展。现在生成二维码有多种方式,我使用的是QRCoder。第一步安装Nuget包QRCoder也可以......
  • python: qrcode
    python.exe-mpipinstall--upgradepippipinstallsegnopipinstallqrcodepipinstallqrcode-artisticpipinstallurlopenpipinstallImagepipinstallImageDra......
  • Java生成二维码,基于QRCode
    packagetest;importjava.io.*;importjava.util.Date;importjava.awt.*;importjava.awt.image.*;importjavax.imageio.*;importcom.swetake.util.Qrcode;publicclass......
  • Vue中qrcode的使用方法(生成二维码插件) / 前端页面根据URL链接生成二维码
      1.下载npminstallqrcode--save-dev2.引入(在所需要的页面中引入)importQRCodefrom“qrcode”;//引入生成二维码插件3.生成二维码<canvasid="QRCode_head......
  • C# 生成二维码方法(QRCoder)
    前言二维码很多地方都有使用到。如果是静态的二维码还是比较好处理的,通过在线工具就可以直接生成一张二维码图片,比如:草料二维码。但有的时候是需要动态生成的(根据动态数......