lorysoftwareio/simple-qrcode

Lory QrCode 是为 Laravel 定制的 QR 码生成器。

dev-master 2019-03-22 10:35 UTC

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 图(没有圆边)

avatar

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 二维码

avatar

Qrcode::format('png')->size(100)->cornergenerate('https://www.hao123.com', $cornerimg, $logoimg,public_path("/img/cc.png"));