如何在 Perl 中生成带图片的二维码?

问题描述 投票:0回答:1

我想生成一个二维码,二维码中间有一张图片。

可以用Perl生成二维码里面有图片的二维码吗?我尝试了不同的库,但仍然找不到解决方案。

这是一个清晰的示例,它应该是什么样子,QR 码在中心包含徽标(图片):

我尝试了不同的 Perl 模块,并且无法自定义二维码。

perl qr-code perl-module
1个回答
0
投票

使用

Image::Magick
Imager::QRCode
你可以很容易地做到这一点:

use strict;
use warnings;

use Imager::QRCode;
use Image::Magick;
use Carp qw(croak);

my $qrcode = Imager::QRCode->new(
    size          => 10,
    margin        => 0,
    version       => 1,
    level         => 'H',
    casesensitive => 1,
    lightcolor    => Imager::Color->new( 255, 255, 255 ),
    darkcolor     => Imager::Color->new( 0,   0,   0 )
);

my $qrcode_img = $qrcode->plot('foo bar baz');

$qrcode_img->write( file => 'qrcode.gif' )
  or croak q{Failed to write QRCode: } . $qrcode_img->errstr;

my $magick_qrcode = Image::Magick->new;
$magick_qrcode->Read( filename => 'qrcode.gif' );

my $embedded_image = Image::Magick->new;
$embedded_image->Read( filename => 'embedded_image.png' );

$magick_qrcode->Composite(
    image => $embedded_image,
    qw(compose StcAtop gravity Center)
);

$magick_qrcode->Write( filename => 'final_qrcode.png' );

您可以调整

Imager::QRCode
构造函数中的设置,使 QRCode 也成为您想要的颜色。

结果:

© www.soinside.com 2019 - 2024. All rights reserved.