karmabunny / bacon-backends
v1.0.0
2022-10-26 22:19 UTC
Requires
Requires (Dev)
- khanamiryan/qrcode-detector-decoder: 1.0.3
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.5
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渲染器