apirone/php-qr-code

从单个PHP文件生成QR码。

1.0.0 2024-01-19 07:36 UTC

This package is auto-updated.

Last update: 2024-09-19 09:10:18 UTC


README

  • 从单个PHP文件生成QR码。MIT许可证。
  • 输出原始PNG或base64编码的数据

安装

composer require apirone/php-qr-code

用法

require_once('../vendor/autoload.php';

use Apirone\Lib\PhpQrCode\QrCode;

// Quick static method with base64 encoded PNG

$data = 'Lorem ipsum dolor sit amet';
$options = [
    's' => 'qrm',
    'fc' => '#000000',
    'bc' => '#FFFFFF',
    // ...
];

$base64_qr_encoded = QrCode::png($data, $options);
echo '<img src="' . $base64_qr_encoded . '"> ';

// Create and use qr instant
$qr = QRCode::init($data, $options); // $data & $options are optional

// Also you can use chain to set some options (not all)
$options['s'] = 'qrq';
$image_encoded = $qr->data($data)->options($options)->base64();

echo '<img src="' . $image_encoded . '"> ';

$image_raw = QRCode::init()
    ->data($data)
    ->levelHigh()
    ->density(0.5)
    ->raw();

echo '<img src="data:image/png;base64,' . base64_encode($image_raw) . '"> ';

选项

使用选项数组初始化类

$options = [
    's' => 'qrl',
    'fc' => '#000000',
    'bc' => '#FFFFFF',
    // ...
];

可用的选项键

您可以将选项定义为 [key => value, ...] 或使用选项名称作为属性 $qr->s = 'qrl'

  • s - QR码错误纠正级别。可用值

    • qrl - 级别L(低)7%的数据字节可以恢复。
    • qrm - 级别M(中)15%的数据字节可以恢复。
    • qrq - 级别Q(四分位)25%的数据字节可以恢复。
    • qrh - 级别H(高)30%的数据字节可以恢复。
  • w - 图像宽度。覆盖 sfsx

  • h - 图像高度。覆盖 sfsy

  • sf - 缩放因子。默认4。

  • sx - 水平缩放因子。覆盖 sf

  • sy - 垂直缩放因子。覆盖 sf

  • p - 填充。默认0。

  • pv - 顶部和底部填充。默认为`p`的值。

  • ph - 左右填充。默认为`p`的值。

  • pt - 顶部填充。默认为`pv`的值。

  • pl - 左填充。默认为`ph`的值。

  • pr - 右填充。默认为`ph`的值。

  • pb - 底部填充。默认为`pv`的值。

  • fc - 前景色,格式为 #RRGGBB

  • bc - 背景色,格式为 #RRGGBB

  • md - 模块密度。介于0和1之间的数字。默认1。

  • wq - 静默区单位宽度。默认1。使用0以抑制静默区。

  • wm - 窄模块和空格的宽度。默认1。

方法

初始化方法。静态。

  • png($data, $options = []) - 快速生成base64编码PNG的便捷方法。静态。
  • init($data = '', $options = []) - 初始化QR码实例。静态。

设置错误纠正级别

  • levelLow() - 将 s 选项设置为 qrl
  • levelMid() - 将 s 选项设置为 qrm
  • levelQrt() - 将 s 选项设置为 qrq
  • levelHigh() - 将 s 选项设置为 qrh
  • levelAuto() - 取消设置 s 选项。

一些参数设置方法

调用不带参数的方法以清除选项值。

  • data($data = '') - 设置QR码数据
  • options($options = []) - 设置QR码选项
  • size($size = null) - 生成的图像大小。同时设置 hw 选项为相同的值。
  • scale($scale = null) - 设置 sf 选项值。
  • padding($padding = null) - 设置 p 选项。
  • color($color = null) - 设置 fc 选项。
  • background($color = null) - 设置 bc 选项。
  • quietZone($size = null) - 设置 wq 选项。
  • density($density = null) - 设置 md 选项。

生成QR方法

  • render_image() - 返回生成的 GD 资源。
  • raw() - 返回原始 PNG 图像数据。
  • base64() - 返回 base64 编码的 PNG 图像数据。