Image-PNG-QRCode
view release on metacpan or search on metacpan
lib/Image/PNG/QRCode.pod view on Meta::CPAN
generator|https://developers.google.com/chart/infographics/docs/qr_codes>.
The QR codes generated by Image::PNG::QRCode are about 1/3 the size of
the default Google charts ones, for example the "Hello world" example
in the above documentation is 728 bytes, but Image::PNG::QRCode makes
an equivalent QR code using only 243 bytes. The reason for the reduced
size is that Google Charts uses RGB colour space, whereas
Image::PNG::QRCode uses one-bit monochrome colour space.
=item ZXing
L<ZXing|https://github.com/zxing/zxing/> is a Java project which can
generate QR codes. These are one-bit monochrome ones.
=item QrCode.net
L<QrCode.net|http://qrcodenet.codeplex.com/> is a .Net version.
=item JavaScript qrcode generators
These might be a useful alternative to using a server-side solution:
L<http://d-project.googlecode.com/svn/trunk/misc/qrcode/js/>
L<http://code.google.com/p/jsqrencode/downloads/list>
However, sending these large JavaScript files over the internet will
use much more bandwidth than sending the QR codes themselves, for most
usage cases.
=item Project Nayuki QR Code generator library
L<Project Nayuki QR Code generator
library|https://www.nayuki.io/page/qr-code-generator-library> contains
an online JavaScript QR code generator and links to implementations in
C, C++, Java, JavaScript, Python, and Rust.
=back
=head1 BUGS
This section details some deficiencies of the module, and is probably
only of interest to people who want to contribute to development.
The QR code PNG files are very small and various tricks are used to
make the memory use and the PNG file very small. Although the original
plan was to interoperate with L<Image::PNG::Libpng>, this ended up
looking like a big burden to get only a small return, so this module
actually just copies the parts of the code of
L<Image::PNG::Libpng>. If you want to manipulate the output PNG file
you'll need to read it in again and operate on it.
The module isn't optimized for repeated uses, it builds up and tears
down everything for each image.
The QR encoding is not checked for correctness. The QR code library
comes from the "qrduino" project, but the contents have been worked on
so it's not clear whether it's still correct. Also there was a bug in
the original qrduino leading to reading uninitialized memory.
This encoder doesn't support the "shift-JIS" format. UTF-8 seems to
pass through it OK. It doesn't use a BOM for the UTF-8.
The QR codes have only been checked by using two Android smartphones.
=head1 COPYRIGHT AND LICENSE
The QR code creation part (the contents of F<qrencode.c> in the
distribution) is copyright 2010, Tom Zerucha,
L<https://github.com/tz1>. The rest of the module is copyright by Ben
Bullock 2015-2018.
This Perl module is licensed under the GNU General Public License
version 3.
=cut
( run in 2.562 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )