karmabunny / bacon-backends

v1.0.0 2022-10-26 22:19 UTC

This package is auto-updated.

Last update: 2024-09-19 16:26:45 UTC


README

为Bacon QR添加的一些额外后端。

这些可能比其他后端更可靠,尤其是在资源受限的托管环境中。

  • ImagickDumbBackEnd
  • GdImageBackEnd

ImagickDumbBackEnd

内置的imagick后端(目前)在PHP 8中损坏。因此,这是一个封装SVG后端并通过imagick提供的convert CLI工具进行管道传输的后端。

通常,我们发现PHP imagick扩展有点可疑。例如,Sprout 3与Sprout 2中的imagick扩展不同,并仅使用convert工具。

注意事项:可能在Windows上无法工作。大量使用proc_open()

GdImageBackEnd

这是一个非常有限的后端,但足以绘制基本的二维码。

GD比imagick更广泛可用。因此,对于那些资源受限的环境来说,这是一个很大的优势。

注意事项:很多。

  • 没有渐变。
  • 没有旋转。
  • 没有层。
  • 没有曲线或省略号。

你可能会问,为什么不写一个渲染器而不是图像后端?答案是 - 我甚至没有意识到这是一个选项。这可能更容易,也可能更难。实际上可能更健壮。所以也许那将是未来的事情。

使用方法

use BaconQrCode\Renderer\ImageRenderer;
use BaconQrCode\Renderer\RendererStyle\RendererStyle;
use BaconQrCode\Writer;
use karmabunny\BaconBackends\GdImageBackEnd;
use karmabunny\BaconBackends\ImagickDumbBackEnd;

$renderer = new ImageRenderer(
    new RendererStyle(400),
    new ImagickDumbBackEnd(),
    // or new GdImageBackEnd(),
);
$writer = new Writer($renderer);
$writer->writeFile('Hello World!', 'qrcode.png');

贡献

请确保写一个测试。我们那里有一些相当有趣的东西,但它是用例的有效验证。

使用composer test运行测试。

在发布之前,也请运行composer analyse

未来

一些有趣且有利可图的事情要做。

  • GD渲染器(与图像后端相对)
  • HTML渲染器