wenxin/qrcode

这是一个可以自定义二维码的生成器。

dev-master 2019-06-28 04:50 UTC

This package is auto-updated.

Last update: 2024-09-28 17:28:12 UTC


README

这是一个可以自定义二维码大小、颜色、背景颜色、边距、图标、曲线和边框的二维码生成器包。

运行以下命令安装包

$ composer require wenxin/qrcode

安装 Imagick 扩展

用户需要安装 Imagick PHP 扩展以在该包中创建和修改图像。

打开 config/app.php 文件并将此类添加到 providers 数组中。

Wenxin\Qrcode\QrCodeServiceProvider::class

在相同的文件(config/app.php)中添加以下行到 aliases 数组。

'QrCode' => Wenxin\Qrcode\Facades\QrCode::class

实现时在顶部添加 'use QrCode'。

use QrCode;

描述参数和示例

format('png') - 字符串

  • 二维码文件类型

size(500) - 整数

  • 设置二维码大小(px)。大小范围从 0 到 1000px。

color('8E44AD') - 字符串

  • 设置二维码颜色(十六进制)。输入时不要带 '#',例如:28B463, 8E44AD

backgroundColor('FDEBD0') - 字符串

  • 设置二维码背景颜色(十六进制)。输入时不要带 '#',例如:F9E79F, FDEBD0

margin(2) - 整数

  • 设置二维码边框大小(px)。大小范围从 0 到 10px。

errorCorrection('H') - 字符串

  • 设置二维码错误纠正。二维码具有错误纠正功能,可以在代码污损或损坏时恢复数据。有四种错误纠正级别('L' - 7%,'M' - 15%,'Q' - 25%,'H' - 30%)可供用户根据操作环境选择。提高此级别可以提高错误纠正能力,但也会增加二维码的大小。

encoding('UTF-8') - 字符串

  • 设置字符编码。默认值为 'UTF-8'。
  • 编码列表: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。

generate('This is a QR code generator.', storage_path('qrcode.png')) - 字符串

  • 二维码内容值,例如文本、URL、电话。
  • 将 'qrcode.png' 文件保存在 Laravel 存储中。

curve(5) - 整数

  • 设置二维码曲线大小(px)。大小范围从 1 到 10px。

merge_icon('icon/logo14.png', 4) - 字符串,整数

  • 上传并合并图标到二维码中心。最大 5MB(仅上传 .png 文件)
  • 设置图标的尺寸。尺寸范围是 2 到 5。数字越大,尺寸越小。

frame('frame/frame8.png', 630, 630) - 字符串,整数

  • 上传合并二维码的边框。最大 5MB(仅上传 .png 文件)。
  • 设置二维码边框的宽度和高度尺寸(px)。最大 1100px。

position(100, 100) - 整数

  • 设置二维码在边框中的 X 和 Y(px)位置。位置范围从 0 到 300px。

覆盖

  • True:允许系统覆盖现有的二维码并用新二维码覆盖。
  • False:系统不允许重复的文件名,将提示错误。

二维码生成器的流程

首先,生成一个基本的二维码并将其保存为 'qrcode.png' 文件。然后,使用 'qrcode.png' 文件实现曲线、图标和边框的自定义。

重要

必须遵循顺序

示例代码(必须遵循顺序)

        $qrcodeImage = QrCode::format('png') //set qr format
            ->size(300) // set qrcode size
            ->errorCorrection('H') //set qrcode error correction
            ->color('FF00FF') //set qr color
            ->backgroundColor('00FF00') // set qrcode background color                              
            ->encoding('UTF-8') //set the character encoder.
            ->overwrite(true) //set new qrcode will overwrite existing file
            ->margin(0) // set qrcode border   
            ->generate('This is a custom QR code generator.','qr') //set qrdata ,and second param is filename (optional)
            ->curve(5) // set curve of the qrcode
            ->merge_icon('icon/download.png',4)  // merge icon at the center of the qrcode & set icon size
            ->frame('frame/frame2.png', 600, 600) //frame file ,frame width and height
            ->position(150,150);  //set qrcode position x and y in the frame