lorysoftwareio / simple-qrcode
Lory QrCode 是为 Laravel 定制的 QR 码生成器。
Requires
- php: >=5.4.0
- ext-gd: *
- bacon/bacon-qr-code: 1.0.*
- illuminate/support: >=4.2.0
This package is auto-updated.
Last update: 2024-09-22 22:29:21 UTC
README
构建状态 最新稳定版本 最新不稳定版本 许可证 总下载量
简介 Lory QrCode 是一个基于强大的 Bacon/BaconQrCode 库开发的适用于当前最流行的 Laravel 框架的扩展库。它使 Laravel 用户可以方便地使用。
翻译 我们正在寻找可以将本文档翻译成韩语或日语的合作伙伴,将本文档翻译成当地语言。愿意翻译的朋友们欢迎 pull 给我。
配置 Composer 设置 首先,将 QrCode 包添加到你的 composer.json 文件的 require 部分。
"require": {
"lorysoftwareio/simple-qrcode": "~2"
}
然后,运行 composer update .
添加 Service Provider
Laravel <= 5.4
将 SimpleSoftwareIO\QrCode\QrCodeServiceProvider::class 注册到 config/app.php 的 providers 数组中。
添加 Aliases
Laravel <= 5.4
最后,将 'QrCode' => SimpleSoftwareIO\QrCode\Facades\QrCode::class 注册到 config/app.php 的 aliases 数组中。
示例
打印视图 一个重要的应用是在打印页面添加的来源二维码。我们只需要在 footer.blade.php 文件中添加如下代码即可!
<div class="visible-print text-center">
{!! QrCode::size(100)->generate(Request::url()); !!}
<p>Scan me to return to the original page.</p>
</div>
嵌入二维码 你可以在 Email 中嵌入一个二维码,让收件人可以快速扫描。以下是使用 Laravel 实现的一个示例。
//Inside of a blade template.
<img src="{!!$message->embedData(QrCode::format('png')->generate('Embed me into an e-mail!'), 'QrCode.png', 'image/png')!!}">
使用说明 基本使用 使用 QrCode 的 Generator 非常方便。大多数情况下只需这样
QrCode::generate('Make me into a QrCode!');
这就能创建一个内容为:"Make me into a QrCode!" 的二维码了。
生成二维码 Generate 是用来创建二维码的方法。
QrCode::generate('Make me into a QrCode!');
注意:要创建二维码必须使用此方法
Generate 默认返回一个 SVG 格式的图片文本。你可以在 Laravel 的 Blade 系统中将其显示到浏览器中,使用方式如下
{!! QrCode::generate('Make me into a QrCode!'); !!}
generate 方法的第二个参数是指定要存储图片数据的文件地址。
QrCode::generate('Make me into a QrCode!', '../public/qrcodes/qrcode.svg');
自定义输出图片格式 QrCode Generator 默认输出 SVG 格式的图片。
注意!format 方法必须第一个被设置,其它的设置如:size, color, backgroundColor, 和 margin 的设置必须在它的后边。
支持 PNG,EPS,SVG 三种格式,设置方式如下
QrCode::format('png'); //Will return a PNG image
QrCode::format('eps'); //Will return a EPS image
QrCode::format('svg'); //Will return a SVG image
尺寸设置 QrCode 的 Generator 默认返回可能最小像素单位的二维码。
你可以使用 size 方法去设置它的尺寸。下面是设置像素尺寸的实例
QrCode::size(100);
边距设置 也支持设置边距。设置方式如下
QrCode::margin(100);
容错级别设置 改变二维码的容错级别也很方便。只要这么设置
QrCode::errorCorrection('H');
下面是 errorCorrection 方法支持的容错级别设置。
添加 LOGO 图(没有圆边)
merge 方法可以让 QrCode 为生成结果添加 LOGO 图片。下面是常见的为二维码添加 LOGO 图片的使用方式。
QrCode::merge($filename, $percentage, $absolute);
//生成一个中间有 LOGO 图片的二维码
QrCode::format('png')->merge('path-to-image.png')->generate();
//生成一个中间有 LOGO 图片的二维码,且 LOGO 图片占整个二维码图片的 30%。
QrCode::format('png')->merge('path-to-image.png', .3)->generate();
//使用绝对路径的 LOGO 图片地址创建二维码,LOGO 图片占整个二维码图片的 30%。
QrCode::format('png')->merge('http://www.google.com/someimage.png', .3, true)->generate();
merge 方法当前只支持 PNG 格式的图片 默认使用相对于应用程序的根路径,把第三个参数设置为 true 就能切换到使用绝对路径
为了让二维码保持高可识别度,建议在使用 merge 方法时把二维码的容错级别提高。我们默认使用: errorCorrection('H')。
合并 LOGO
添加二进制 LOGO 图片
mergeString 方法与 merge 方法类似,不同之处在于它允许你使用一个二进制的 String 代替 LOGO 文件路径。这在使用 Storage 存储时,会显得很方便。它的参数与 merge 类似。
QrCode::mergeString(Storage::get('path/to/image.png'), $percentage);
//使用中间件读取的图片数据作为 LOGO 图片来创建二维码。
QrCode::format('png')->mergeString(Storage::get('path/to/image.png'))->generate();
//使用中间件读取的图片数据作为 LOGO 图片来创建二维码,且 LOGO 图片占整个二维码图片的 30%。
QrCode::format('png')->mergeString(Storage::get('path/to/image.png'), .3)->generate();
和 merge 方法一样,当前只支持 PNG 格式。同样建议将二维码的容错级别提高。
高级用法 所有的方法都支持链式操作。generate 方法必须在最后,format 必须在第一个。例如
QrCode::size(250)->color(150,90,10)->backgroundColor(10,14,244)->generate('Make me a QrCode!');
QrCode::format('png')->size(399)->color(40,40,40)->generate('Make me a QrCode!');
你还可以不存储图片,而使用 base64_encode 将二进制数据直接显示成二维码图片。
<img src="data:image/png;base64, {!! base64_encode(QrCode::format('png')->size(100)->generate('Make me into an QrCode!')) !!} ">
生成圆角图边 LOGO 二维码
Qrcode::format('png')->size(100)->cornergenerate('https://www.hao123.com', $cornerimg, $logoimg,public_path("/img/cc.png"));