二维码生成

前言

这里使用 simple-qrcode包生成二维码,我在Laravel框架中使用
github: https://github.com/SimpleSoftwareIO/simple-qrcode
安装 composer require simplesoftwareio/simple-qrcode “~2”

  • ~2 代表安装v2版本
  • ~3 需要安装 imagick 扩展
创建二维码
namespace App\Http\Controllers\Test;

use App\Http\Controllers\Core\CoreController;
use Illuminate\Http\Request;
use SimpleSoftwareIO\QrCode\Facades\QrCode;

/**
 * Class IndexController
 * @package App\Http\Controllers\Test
 */
class IndexController extends CoreController
{
    public function index(Request $request)
    {
        /**
         * format($format) 设置图片格式 $format:图片格式,默认svg
         * size($pixels) 设置二维码大小 是正方形
         * generate($text,$filename) 创建图片 $text:文本内容,$filename图片存储位置
         * 注意:如果设置了$filename,那么$filename的文件后缀应该同$format 一致。否则生成错误的图片,导致无法展示|打开
         */

       # 正确的用法 png 对应 .png后缀
       QrCode::format('png')->size(200)->generate('https://github.com',public_path('image/qr_code.png'));
       # 图片是svg格式却用png保存,生成的图片无法打开|展示
       # QrCode::generate('https://github.com',public_path('image/qr_code.png'));
    }
}
设置二维码中间的图像
namespace App\Http\Controllers\Test;

use App\Http\Controllers\Core\CoreController;
use Illuminate\Http\Request;
use SimpleSoftwareIO\QrCode\Facades\QrCode;

/**
 * Class IndexController
 * @package App\Http\Controllers\Test
 */
class IndexController extends CoreController
{
    public function index(Request $request)
    {
        /**
         * merge($filepath,$percentage,$absolute = false) 设置二维码中间的图片
         * $filepath 图片路径
         * $percentage 中间占二维码的百分比
         * $absolute 是否是绝对路径,为false时且base_path() 函数存在时,加载的真实路径是:base_path().$filepath
         */

        /**
         * mergeString($content,$percentage) 设置二维码中间图片
         * $content 图片内容
         * $percentage 间占二维码的百分比
         * merge 等价于 mergeString 两种方法都能设置中间的图片
         */


//       $byte = QrCode::format('png')->size(520)->merge('/public/image/avatar.png',0.2,false)->generate('https://github.com');
        $byte = QrCode::format('png')->size(520)->mergeString(file_get_contents(public_path('image/avatar.png')), 0.1)->generate('https://github.com');
        return response()->make($byte)->header('content-type', 'image/png');
    }
}
结果在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值