在 Laravel 5 中通过 Simple QrCode 扩展包生成二维码详解 | 图片处理 | Laravel 优质扩展包


本站和网页 https://xueyuanjun.com/post/2605.html 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

在 Laravel 5 中通过 Simple QrCode 扩展包生成二维码详解 | 图片处理 | Laravel 优质扩展包
Laravel 学院
文档
Laravel 8.x 中文文档
Laravel 7.x 中文文档
Laravel 6.x 中文文档
Laravel 5.8 中文文档
Laravel 5.7 中文文档
Laravel 5.6 中文文档
Laravel 5.5 中文文档
Laravel 5.4 中文文档
Laravel 5.3 中文文档
Laravel 5.2 中文文档
Laravel 5.1 中文文档
Lumen 中文文档
全栈教程
PHP 全栈工程师指南
PHP 入门到实战
Laravel 入门到精通
Vue.js 入门到实战
玩转 PhpStorm 教程
Laravel 博客入门项目
Laravel 微信小程序项目
Laravel 前后端分离项目
Swoole 入门到实战
Eloquent 性能优化实战
Redis 高性能实战系列
Laravel 新版本特性
PHP 新特性与最佳实践
Golang
Go 入门教程
Go Web 编程
Gin 使用教程
微服务开发
内功修炼
数据结构与算法
网络协议
微服务从入门到实践
高性能 MySQL 实战
高性能 Redis 实战
Laravel 消息队列实战
Laravel 从学徒到工匠
PHP 设计模式系列
名企面试指南
资源库
Laravel 资源大全
Laravel 开源项目
Laravel 扩展包
Laravel 资源下载
更多
博客 & 新闻
问答 & 讨论
Leetcode 题解
学院君读书笔记系列
关于 Laravel 学院
Laravel 互助学习群
Golang 互助学习群
更多
Laravel 中文文档
Laravel 全栈教程
Laravel 学习路径
Go 入门教程
程序员内功修炼
博客
问答
搜索
注册
登录
Info
Content
章节导航
Laravel 优质扩展包
目录索引
Laravel 精选资源大全(持续更新)
登录认证
4篇文章
社交媒体登录认证提供者大全 —— Socialite Providers,支持微博、微信、QQ等
Laravel 5 中使用 JWT(Json Web Token) 实现基于API的用户认证
Laravel 生成 Gravatar 头像地址的优雅姿势
基于 access_token 的多用户多应用 API 认证 Laravel 开发包
权限管理
4篇文章
在 Voyager 后台管理系统中集成 Entrust 实现 RBAC 权限管理(一) —— 安装
PHP -Casbin: 支持 ACL、RBAC、ABAC 多种模型的 PHP 权限管理框架
Laravel-Casbin:在 Laravel 里使用 Casbin(PHP 权限管理框架)
PHP 中基于 Casbin 做 RBAC + RESTful 权限控制
数据操作
2篇文章
在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
使用 PhpSpreadsheet 实现读取写入 Execl
数据库相关
6篇文章
在 Laravel 中使用 Laravel Searchy 扩展包实现基于数据库的轻量级搜索功能
通过 Laravel 5 Extended Generators 扩展包为 Laravel 5 数据库生成器锦上添花
推荐:好用的 Laravel Repository 包
使用 laravel-repository 扩展包实现对模型类操作的封装
基于 Laravel Prequel 扩展包通过 Web 界面管理 MySQL 数据库
基于 Laravel 扩展包 laravel-db-snapshots 快速导入导出数据库快照
开发辅助
15篇文章
Laravel 调试利器 —— Laravel Debugbar 扩展包安装及使用教程
Laravel 5 中使用 HtmlBuilder 及 URL::asset() 引入站内或站外的 css 和 js 文件
为 Laravel 应用快速生成 HTML 导航菜单的扩展包:Laravel Menu
使用 Clockwork 扩展在 Chrome 浏览器中显示 Laravel 应用调试信息
Laraval IDE 自动补全助手:Laravel IDE Helper Generator
通过 Laravel EnvProviders 扩展包基于应用开发环境加载相应的服务提供者
在 Laravel 中通过 Artisan View 扩展包创建及删除应用视图文件
在 Laravel 5 中集成 Pjax 实现无刷新加载页面的扩展包 —— Laravel Pjax
使用 Laravel-Modules 扩展包通过模块化开发大型 Laravel 应用
基于 Laravel Sitemap 扩展包编写定时任务生成 Laravel 学院站点地图
Laravel 扩展包之开发辅助工具
基于 Laravel Sentry 扩展包实现 Laravel 学院异常实时监控及告警
基于 Laravel 扩展包 LaraStan 实现对项目代码的静态编译检查
基于 Laravel 扩展包 Health Monitor 在应用中实现资源及服务的健康检查和实时监控
使用 Laravel Telescope Toolbar 在浏览器工具条查看 Telescope 数据
文件存储
2篇文章
在 Laravel 5 中集成七牛云存储实现云存储功能
优雅的 Oss Flysystem 扩展
图片处理
5篇文章
在 Laravel 5 中通过 Simple QrCode 扩展包生成二维码详解
在 Laravel 5.1 中使用 Intervention Image 包将图片颜色变灰
在 Laravel 5 中集成 Intervention Image 实现对图片的创建、修改和压缩处理
在 Laravel 5 中使用 jQuery 插件 Croppic + Intervention Image 实现图片上传和裁剪
Laravel 5.1 中基于 Dropzone.js 实现图片拖拽上传及删除功能
API 开发
13篇文章
使用 Laravel Generator 快速为 Laravel 应用生成CRUD、API、测试用例代码 —— 介绍篇
使用 Laravel Generator 快速为 Laravel 应用生成CRUD、API、测试用例代码 —— 安装篇
使用 Laravel Generator 快速为 Laravel 应用生成CRUD、API、测试用例代码 —— 使用篇
Laravel & Lumen RESTFul API 扩展包:Dingo API(一) —— 安装配置篇
Laravel & Lumen RESTFul API 扩展包:Dingo API(二) —— 创建 API Endpoint(路由)
Laravel & Lumen RESTFul API 扩展包:Dingo API(三) —— Response(响应)
Laravel & Lumen RESTFul API 扩展包:Dingo API(四) —— 错误和异常响应
Laravel & Lumen RESTFul API 扩展包:Dingo API(五) —— 转化器(Transformer)
使用 Lumen + Stormpath 为移动 App 提供后端 API
基于 Laravel 5.5 开发的适用于 API 开发的神器 —— laravel-smart
API 鉴权新姿势 - 签名鉴权扩展包:laravel-api-auth
API 鉴权新姿势 - 签名鉴权
使用 tree-ql 高效简洁的开发 API
内容管理
9篇文章
使用 Laravel Moderation 扩展在 Laravel 应用中实现简单的内容审核系统
通过 Quarx 扩展包在任意 Laravel 应用中快速实现 CMS 功能
使用 Jigsaw 扩展包基于 Laravel Blade 模板构建静态站点 —— 安装预览篇
使用 Jigsaw 扩展包基于 Laravel Blade 模板构建静态站点 —— 环境变量篇
使用 Jigsaw 扩展包基于 Laravel Blade 模板构建静态站点 —— 视图布局篇
使用 Jigsaw 扩展包基于 Laravel Blade 模板构建静态站点 —— 前端编译篇
使用 Jigsaw 扩展包基于 Laravel Blade 模板构建静态站点 —— 站点部署篇
通过 Laravel Chatter 扩展包在十分钟内快速为应用搭建问答/论坛系统
基于 Laravel 扩展包 Wink 构建类 Medium 风格的内容发布系统
后台管理
7篇文章
一款不错的开源 Laravel 后台面板/CMS系统 —— LaraAdmin
一款你不容错过的Laravel后台管理扩展包 —— Voyager
基于 Laravel-Admin 在十分钟内搭建起功能齐全的后台模板
Mojito admin - 基于 Laravel、Vue、Element 构建的基础后台系统扩展
Laravel-Admin 最全安装方法与汉化教程图解
Dcat Admin —— 一款颜值极高的后台系统构建工具,简单高效,开箱即用
通过 Nebula 扩展包构建基于 Laravel + Alpine + Tailwind 的后台管理系统
安全相关
10篇文章
Laravel 5 表单中如何集成使用 Google reCAPTCHA 验证码
使用 Captcha 扩展包 为 Laravel 5 应用生成验证码
在 Laravel 5 中使用 Purifier 扩展包集成 HTMLPurifier 防止 XSS 跨站攻击
极限验证,一句话调用geetest,减少开发时间
极验(Geetest) Laravel 5 集成开发包,让验证更安全
使用 laravel-google-authenticator 扩展包为你的网站打造一个动态手机令牌
通过 Google 身份验证器为你的网站打造一个动态手机令牌
Laravel 学院文本编辑器及 XSS 攻击防范 —— 富文本编辑器 summernote 篇
Laravel 学院文本编辑器及 XSS 攻击防范 —— Markdown 编辑器篇
使用 Firewall 扩展包全面保护 Laravel 应用免受恶意攻击
电商平台
2篇文章
Laravel 5 高性能电子商务扩展包 —— Aimeos Laravel
通过 ShoppingCart 扩展包在 Laravel 5.2 中快速实现购物车功能
货币&支付
4篇文章
laravel-amount —— Model 中自动转换金额的 Trait
可能是你用过的最优雅的支付宝和微信支付 SDK 了 —— Laravel Pay
一个 GitHub 上的 Laravel 以太坊扩展包 —— Laravel-ethereum
一个基于 PAYJS 的微信支付个人接口开发包
邮件&通知
6篇文章
使用 Laravel Notifynder 扩展轻松实现 Laravel 应用的消息通知功能
MailThief —— 让 Laravel 应用中测试邮件发送变得简单
BearyChat 消息推送机器人 For PHP & Laravel
Laravel 5.3 Notification 个人理解,及 BearyChat Channel 新鲜出炉
如果你用 Laravel Notification 发送到 Wechat,那么你可能需要点进来
基于个推(GeTui)官方SDK集成 Laravel 5.* 、Lumen 推送服务包
性能优化
7篇文章
通过 PHP OPcache 让你的 Laravel 应用运行速度飞起来
Laravel Response 中间件缓存,一步加速页面加载速度
LaravelS 站在巨人的肩膀上,通过Swoole加速Laravel/Lumen
使用 Swoole 协程实现的 Laravel 任务调度扩展包:laravel-bjask
SMProxy,让你的数据库操作快三倍!
基于Swoole的通用连接池 - 数据库连接池
SMProxy 1.2.9 发布 ! 新增状态命令监控面板功能
其它
16篇文章
Laravel Web Installer : 让 Laravel 应用像 WordPress 一样通过浏览器进行安装升级
Laravel Emoji —— 在 Laravel 应用中集成使用 Emoji 表情
Laravel 与 WordPress 系列 —— 集成 Laravel 和 WordPress 的扩展包大全
使用 Laravel Search 扩展包基于 Elasticsearch、 Algolia 以及 ZendSearch 实现全文搜索功能
推荐一款在 Laravel 应用中为丢失或不存在页面进行重定向的扩展包
如果在所有 Laravel 项目中只安装一个扩展包,你会选择哪一个?
基于高性能算法实现的优雅 ID 混淆扩展包 —— Laravel Hashid
诺诺开放平台 PHP-sdk,需要的来点一波 star 咯~
百度地图开放平台 PHP sdk - lbscloud-sdk
基于 Laravel、Lumen 框架集成百度翻译、有道翻译、Google 翻译扩展包
基于 XunSearch(迅搜)SDK 的全文搜索 Laravel 5.* 软件包,支持全拼、拼音简写、模糊搜索、热门搜索、搜索提示
Laravel-smartmd:一个实用的 Markdown 编辑器,支持数学公式、流程图
通过 Livewire 在 Laravel 项目中实现基于 PHP 的全栈开发(一):快速上手篇
通过 Livewire 在 Laravel 项目中实现基于 PHP 的全栈开发(二):组件创建和渲染的底层实现
通过 Livewire 在 Laravel 项目中实现基于 PHP 的全栈开发(三):数据绑定及底层实现
通过 Laravel Trix 扩展包在 Laravel 项目中集成使用 Trix 编辑器
图书
Laravel 优质扩展包
图片处理
在 Laravel 5 中通过 Simple QrCode 扩展包生成二维码详解
在 Laravel 5 中通过 Simple QrCode 扩展包生成二维码详解
由 学院君 创建于7年前, 最后更新于 2年前
版本号 #3
79731 views
29 likes
0 collects
1、简介
Simple Qrcode 是 Bacon/BaconQrCode 针对 Laravel 框架的封装版本,用于在 Laravel 中为生成二维码提供接口。
2、安装&配置
在项目根目录下使用如下命令安装依赖包:
composer require simplesoftwareio/simple-qrcode 1.3.*
在 config/app.php 注册服务提供者:
SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class
同样在 config/app.php 添加 QrCode 门面:
'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class
3、快速上手
在视图中打印
<div class="visible-print text-center">
{!! QrCode::size(100)->generate(Request::url()); !!}
<p>Scan me to return to the original page.</p>
</div>
嵌入到邮件内容
<img src="{!!$message->embedData(QrCode::format('png')->generate('Embed me into an e-mail!'), 'QrCode.png', 'image/png')!!}">
4、基本用法
基本使用
Qrcode 生成器用法很简单,最基本的语法如下:
QrCode::generate('Hello,LaravelAcademy!');
这将会生成一个二维码,用手机扫描该二维码将会跳转到一个显示“Hello,LaravelAcademy!”的页面。
如果想要显示中文,需要使用如下方式指定编码:
QrCode::encoding('UTF-8')->generate('你好,Laravel学院!');
generate() 方法用于生产二维码图片,默认情况下,返回一个 SVG 格式的图片字符串,在视图中我们可以可以通过如下方式将其打印出来:
{!! QrCode::generate('Hello,LaravelAcademy!'); !!}
此外,generate() 方法还可以接受第二个参数用于指定文件名以及保存路径:
if(!file_exists(public_path('qrcodes')))
mkdir(public_path('qrcodes'));
QrCode::generate('Hello,LaravelAcademy!', public_path('qrcodes/qrcode.svg'));
这样生成的 SVG 文件会保存到 /public/qrcodes/qrcode.svg。
修改保存格式
前面我们说了,QrCode 默认生成 SVG 格式文件,当然,我们可以修改保存格式,目前 Simple QrCode 支持三种格式:PNG、SVG 和 RPS。要修改生成二维码图片格式,可以使用 format() 方法:
QrCode::format('png')->generate('Hello,LaravelAcademy!',public_path('qrcodes/qrcode.png'));
这样会在 /public/qrcodes 目录下生成 qrcode.png 图片。要生成其它格式,将对应格式传入 format() 方法即可。
注:format() 方法必须在所有其它格式化方法之前调用,这些格式化方法包括 size、color、backgroundColor 和 margin。
修改二维码图片尺寸
QrCode 生成器默认返回最小尺寸二维码图片。如果要修改生成二维码图片尺寸,可以使用 size() 方法:
QrCode::format('png')->size(100)->generate('Hello,LaravelAcademy!',public_path('qrcodes/qrcode.png'));
这样会生成一个宽高均为100像素的二维码图片:
修改颜色(前景色/背景色)
我们还可以通过 color() 方法来修改生成二维码图片的颜色,颜色参数以 RGB 格式表示:
QrCode::format('png')->size(100)->color(255,0,255)->generate('Hello,LaravelAcademy!',public_path('qrcodes/qrcode.png'));
生成的二维码图片如下:
此外,还可以使用 backgroundColor() 方法修改背景色:
QrCode::format('png')->size(100)->color(255,0,255)->backgroundColor(255,255,0)->generate('Hello,LaravelAcademy!',public_path('qrcodes/qrcode.png'));
生成的二维码图片如下:
修改边距
如果你想要修改二维码图片与最外层容器边框的距离,可以使用 margin() 方法:
QrCode::format('png')->size(100)->color(255,0,255)->backgroundColor(255,255,0)->margin(100)->generate('Hello,LaravelAcademy!',public_path('qrcodes/qrcode.png'));
生成的二维码图片如下:
支持编码
关于编码问题我们前面已经提到过,即使用 encoding() 方法设置当前编码,QrCode 默认编码为 ISO-8859-1,目前支持如下编码:
字符编码
ISO-8859-1
ISO-8859-2
ISO-8859-3
ISO-8859-4
ISO-8859-5
ISO-8859-6
ISO-8859-7
ISO-8859-8
ISO-8859-9
ISO-8859-10
ISO-8859-11
ISO-8859-12
ISO-8859-13
ISO-8859-14
ISO-8859-15
ISO-8859-16
SHIFT-JIS
WINDOWS-1250
WINDOWS-1251
WINDOWS-1252
WINDOWS-1256
UTF-16BE
UTF-8
ASCII
GBK
EUC-KR
如果在生成二维码过程中报错:
Could not encode content to ISO-8859-1
这就意味着你需要修改编码了。
合并水印图片到二维码
我们有时候需要将 Logo 或者头像放到二维码图片上,这可以通过 merge() 方法实现:
QrCode::format('png')->size(200)->merge('/public/qrcodes/laravel.png',.15)->generate('LaravelAcademy',public_path('qrcodes/qrcode.png'));
merge() 的第一个参数是水印图片(Logo或头像)的相对路径(相对于项目根目录),第二个参数表示所占百分比。上述生成的二维码图片如下:
注:目前 merge() 方法只支持 PNG 格式二维码图片。
5、辅助函数
我们平时用到的二维码不仅仅是显示文字,而是拥有很多额外功能,比如跳转链接、支付、下载、关注等等,这些功能可以通过 QrCode 提供的辅助函数来实现。
邮件
email() 函数可以用于生产邮件二维码, 我们可以传递邮箱地址、主题和内容到该函数:
QrCode::email('yaojinbu@163.com','测试邮件','通过二维码发送图片');
生成的二维码包含 mailto 信息。
Geo
geo() 函数可以生成手机可以读取并在 Google 地图或类似应用中定位的经度和纬度信息:
QrCode::geo(37.822214, -122.481769);
电话/手机号码
phoneNumber() 函数可以生成一个包含手机/手机号码信息的二维码图片:
QrCode::phoneNumber('18888888888');
短信(SMS)
SMS() 辅助函数可生成包括收件人和信息的短信二维码:
QrCode::encoding('UTF-8')->SMS('18888888888','Laravel学院致力于提供优质Laravel中文学习资源');
更多用法
此外,你还可以通过在传入 generate() 方法的第一个字符串参数前添加如下前缀以生成对应二维码:
使用
前缀
示例
Website URL
http://
http://www.simplesoftware.io
Secured URL
https://
https://www.simplesoftware.io
E-mail Address
mailto:
mailto:support@simplesoftware.io
Phone Number
tel:
tel:555-555-5555
Text (SMS)
sms:
sms:555-555-5555
Text (SMS) With Pretyped Message
sms:
sms::I am a pretyped message
Text (SMS) With Pretyped Message and Number
sms:
sms:555-555-5555:I am a pretyped message
Geo Address
geo:
geo:-78.400364,-85.916993
MeCard
mecard:
MECARD:Simple, Software;Some Address, Somewhere, 20430;TEL:555-555-5555;EMAIL:support@simplesoftware.io;
VCard
BEGIN:VCARD
See Examples
Wifi
wifi:
wifi:WEP/WPA;SSID;PSK;Hidden(True/False)
比如,要生成链接二维码,可以通过如下方式(我们还修改尺寸以方便扫描):
QrCode::size(200)->generate('https://xueyuanjun.com');
扫描生成的二维码图片,页面会跳转到 https://xueyuanjun.com。
6、在 Laravel 之外使用
你还可以在 Laravel 之外使用 Simple QrCode:
use SimpleSoftwareIO\QrCode\BaconQrCodeGenerator;
$qrcode = new BaconQrCodeGenerator;
$qrcode->size(500)->generate('Welcome to LaravelAcademy!');
Laravel
URL
邮件
中文乱码
二维码
QrCode
编码
水印
SVG
PNG
尺寸
颜色
边距
SMS
点赞
取消点赞
收藏
取消收藏
赞赏
分享到以下平台:
<< 上一篇:
优雅的 Oss Flysystem 扩展
>> 下一篇:
在 Laravel 5.1 中使用 Intervention Image 包将图片颜色变灰
25 条评论
#21
叶尘
评论于 3年前
回复 #15
正在删除评论...
兄弟,你解决了这个问题没有?
#22
樱花树下
评论于 3年前
正在删除评论...
微信支付的二维码好像不能改吧
#23
face_all
评论于 3年前
正在删除评论...
请问在前端使用QrCode::format('svg')正常,使用png的就乱码,�PNG  IHDR,,�"�IDATx���An�@@Qq�#G,X� ������ؙ�ˋR�?,请问是什么问题呢,感谢
#24
潘亮
评论于 3年前
正在删除评论...
merge的第二个参数设置为.15识别很慢,设置.13刚好
#25
phpmass
评论于 3年前
回复 #15
正在删除评论...
跟你一样的问题,兄弟解决问题了么,,
&lsaquo;
&rsaquo;
登录后即可添加评论
升级为学院君订阅用户(新年优惠🎁)
内容导航
1、简介
2、安装&配置
3、快速上手
在视图中打印
嵌入到邮件内容
4、基本用法
基本使用
修改保存格式
修改二维码图片尺寸
修改颜色(前景色/背景色)
修改边距
支持编码
合并水印图片到二维码
5、辅助函数
邮件
Geo
电话/手机号码
短信(SMS)
更多用法
6、在 Laravel 之外使用
相关推荐
在 Laravel 5.1 中使用 Intervention Image 包将图片颜色变灰
Laravel 优质扩展包
图片处理
Laravel 5 中使用 HtmlBuilder 及 URL::asset() 引入站内或站外的 css 和 js 文件
Laravel 优质扩展包
开发辅助
如果在所有 Laravel 项目中只安装一个扩展包,你会选择哪一个?
Laravel 优质扩展包
其它
使用 laravel-google-authenticator 扩展包为你的网站打造一个动态手机令牌
Laravel 优质扩展包
安全相关
目录索引
Laravel 优质扩展包
回到顶部
2022 基于 Laravel 6 构建
关于学院
订阅服务
友情链接
站点地图
本站 CDN 加速服务由又拍云赞助