1、安装组件

  1. composer require simplesoftwareio/simple-qrcode 1.3.*

在 config/app.php 注册服务提供者:

  1. SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class

同样在 config/app.php 添加 QrCode 门面:

  1. 'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class

2、用法

  1. //生成二维码,并添加logo
  2. public function generateQrCode($id, $dir)
  3. {
  4. $host = request()->getSchemeAndHttpHost();
  5. $content = $host.'/red-envelop?id='.$id;
  6. //字符串是否有https
  7. if (strpos($host, 'http') === false) {
  8. $content = 'https://'.$content;
  9. }
  10. $fileName = $dir.$id.'.png';
  11. //1. errorCorrection 容错级别设置
  12. // L 7% 的字节码恢复率.
  13. // M 15% 的字节码恢复率.
  14. // Q 25% 的字节码恢复率.
  15. // H 30% 的字节码恢复率.
  16. // 2.margin 边距设置
  17. // 3.merge 二维码中添加图片,方法只支持 PNG,参数(图像路径或 URL,图像宽度和高度)
  18. // 4.backgroundColor(255, 0, 0) 设置二维码背景色
  19. // 5.color(255,0,255) 颜色
  20. // 6.size 字体设置
  21. // 7.generate 设置二维码参数:
  22. // $QrCodeText 二维码内容
  23. // $imagePath 二维码文件
  24. QrCode::format('png')->errorCorrection('Q')->margin(0.5)->merge($dir.'/logo/logo.png', 0.3, true)->size(400)->generate($content, $fileName);
  25. return $fileName;
  26. }
  27. //背景合成
  28. public function qrcodeMerge($fileName, $text)
  29. {
  30. // 图片合成
  31. $bg = imagecreatefrompng($this->dir.'/logo/bg.png');// 提前准备好的海报图 必须是PNG格式
  32. $qrcodes = imagecreatefrompng($fileName); //二维码
  33. imagecopyresampled($bg, $qrcodes, 350, 350, 0, 0, imagesx($qrcodes), imagesx($qrcodes), imagesx($qrcodes), imagesx($qrcodes));
  34. // 设置文字样式
  35. $font = 'C:\Windows\Fonts\simsun.ttc'; // 替换为你的字体文件路径
  36. $fontSize = 18; // 字体大小
  37. $color = imagecolorallocate($bg, 251, 218, 165); // 文字颜色,这里设置为白色
  38. // 在背景图片上添加文字
  39. imagettftext($bg, $fontSize, 0, 710, 1060, $color, $font, $text);
  40. imagepng($bg, $fileName); //生成图片
  41. imagedestroy($bg);
  42. imagedestroy($qrcodes);
  43. $this->info('合成成功:'. $fileName);
  44. return $fileName;
  45. }

转换base64

我们有时候需要图片直接转为base64传给前端,需转为png格式

  1. $img = \SimpleSoftwareIO\QrCode\Facades\QrCode::format('png')->size(150)->generate($id);
  2. $img = 'data:image/png;base64,' . base64_encode($img);

原文链接:https://blog.csdn.net/MrEahon/article/details/123895256

laravel生成二维码,并添加背景图片,图标logo的更多相关文章

  1. C#Qrcode生成二维码支持中文,带图片,带文字

    C#Qrcode生成二维码支持中文带图片的操作请看二楼的帖子,当然开始需要下载一下C#Qrcode的源码 下载地址 : http://www.codeproject.com/Articles/2057 ...

  2. C# Qrcode生成二维码支持中文,带图片,带文字 2015-01-22 15:11 616人阅读 评论(1) 收藏

    1.下载Qrcode库源码,下载地址:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library 2.打开源码时,部分类库 ...

  3. Qrcode生成二维码支持中文,带图片,带文字

    1.下载Qrcode库源码, 下载地址:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library2.打开源码时, 部分类 ...

  4. 转: jquery.qrcode.js生成二维码插件&转成图片格式

    原文地址: https://blog.csdn.net/u011127019/article/details/51226104 1.qrcode其实是通过使用jQuery实现图形渲染,画图,支持can ...

  5. PHP生成二维码【谷歌API+qrcode+圆角Logo】

    方法一:谷歌二维码API 接口地址:https://chart.googleapis.com/chart 官方文档:https://developers.google.com/chart/infogr ...

  6. 使用PHP生成二维码的两种方法(带logo图像)

    一.利用Google API生成二维码 Google提供了较为完善的二维码生成接口,调用API接口很简单,以下是调用代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  7. Laravel 生成二维码的方法

    (本实例laravel 版本 >=5.6, PHP版本 >=7.0) 1.首先,添加 QrCode 包添加到你的 composer.json 文件的 require 里: "re ...

  8. Laravel 生成二维码

    (本实例laravel 版本 >=5.6, PHP版本 >=7.0) 1.首先,添加 QrCode 包添加到你的 composer.json 文件的 require 里: "re ...

  9. Jquery生成二维码(微信中长按图片识别二维码功能)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. js生成二维码并保存成图片下载

    我这里使用是jQuery,和jquery.qrcode.js,需要的可以自己找链接下载.示例代码仅做参考 html代码: <a id="downloadLink">&l ...

随机推荐

  1. AtCoder Beginner Contest 210 (A~E)

    比赛链接:Here A - Cabbages 略 B - Bouzu Mekuri 略 C - Colorful Candies 用map维护连续一段区间的不同元素即可. int main() { c ...

  2. L2-026 小字辈 (25 point(s)) (BFS)

    补题链接:Here 本题给定一个庞大家族的家谱,要请你给出最小一辈的名单. 输入格式: 输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) -- 简单起见,我们把家族成员从 1 到 ...

  3. 深入浅出开源监控系统Prometheus(上)

    本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/4NC4spF6cEvXuIBKVbIU7A作者:ZhangShuo Prometheus是继 ...

  4. localstorage、sessionstorage 存储布尔值要注意

    今天实现一个功能,点击首页,头部按钮,切换大屏功能.不同的屏,页头宽度不一样,小屏1280px,  大屏百分百屏幕,左右留点120px的padding值. 思路:点击按钮,切换不同的子路由,顶部通过一 ...

  5. js判断undefined

    if (item2.shifoushiyong === 1) { if( typeof(item2.koufen) == "undefined" ) { item2.koufen ...

  6. freeswitch的gateway配置方案优化

    概述 freeswitch是一款简单好用的VOIP开源软交换平台. 在之前的文章中,我们简单介绍过gateway的三种配置方案,但是实际应用之后发现,方案中的参数设置有缺陷,会导致一些问题. 本文档中 ...

  7. Feign 进行rpc 调用时使用ribbon负载均衡源码解析

    转载请注明出处: Feign客户端接口的动态代理生成是基于JDK的动态代理来实现的,那么在所有的方法调用的时候最终都会走InvocationHandler接口的实现,默认就是ReflectiveFei ...

  8. AMBA总线介绍-02

    AMBA总线介绍 1 HSIZE AHB总线的地址位宽和数据位宽一般都是32bit,一个字节8bit,一个字节占用一个地址空间,但当一个32bit的数据写入一个存储器中或者从一个存储器中读取,32bi ...

  9. [转帖]一次 Java 进程 OOM 的排查分析(glibc 篇)

    https://juejin.cn/post/6854573220733911048 遇到了一个 glibc 导致的内存回收问题,查找原因和实验的的过程是比较有意思的,主要会涉及到下面这些: Linu ...

  10. [转帖]Kibana查询语言(KQL)

    时间  2020-12-27 标签 html java 数据库 ide ui 翻译 日志 htm 对象 blog 栏目 HTML 繁體版 原文   https://www.cnblogs.com/-b ...