php endroid/qr-cod 高版本 生成二维码

目前使用的endroid/qr-cod版本为:4.5
1:生成二维码直接返回给前端

/**
 * 生成二维码图片:url会直接跳转(url必须带有http,否则不会跳转;其他情况会生成带有参数的二维码)
 * @param $data
 * @param string $label  图片上可添加的其他文案
 * @param int $size
 * @param int $margin
 * @return string
 */
public static function generateQrCode($data, $label = '', $size = 300, $margin = 10)
{
    $qr = Builder::create()
        ->writer(new PngWriter())
        ->writerOptions([])
        ->data($data)
        ->encoding(new Encoding('UTF-8'))
        ->errorCorrectionLevel(new ErrorCorrectionLevelHigh())
        ->size($size)
        ->margin($margin)
        ->roundBlockSizeMode(new RoundBlockSizeModeMargin());
    if (!empty($label)) {
        $qr->labelText($label)
            ->labelFont(new NotoSans(20))
            ->labelAlignment(new LabelAlignmentCenter());
    }
    return $qr->build()->getDataUri();
}

2:生成二维码图片,并保存到指定路径,可跟进业务对保存到指定路径的图片进行其他处理


```php

```php
/**
 * @param $data
 * @param $path:要保存图片到某一个路径,路径可自定义一个有权限的路径
 * @param int $size
 * @param int $margin
 * @param string $label 
 * @return array|string|null
 * @author anxiaowen
 */
public static function savePath($data, $path, $label = '', $size = 300, $margin = 10)
{
    $qr = Builder::create()
        ->writer(new PngWriter())
        ->writerOptions([])
        ->data($data)
        ->encoding(new Encoding('UTF-8'))
        ->errorCorrectionLevel(new ErrorCorrectionLevelHigh())
        ->size($size)
        ->margin($margin)
        ->roundBlockSizeMode(new RoundBlockSizeModeMargin());
    if (!empty($label)) {
        $qr->labelText($label)
            ->labelFont(new NotoSans(20))
            ->labelAlignment(new LabelAlignmentCenter());
    }
    $result = $qr->build();
    $result->saveToFile($path);
    // todo 此时已生成图片在指定的路径;根据自身业务对  保存到 $path的图片处理
}

感觉不错,可赞赏小主一元

在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值