Imager::QRCode - Generate QR Code with Imager using libqrencode


Imager-QRCode documentation Contained in the Imager-QRCode distribution.

Index


Code Index:

NAME

Top

Imager::QRCode - Generate QR Code with Imager using libqrencode

SYNOPSIS

Top

    use Imager::QRCode;

    my $qrcode = Imager::QRCode->new(
        size          => 2,
        margin        => 2,
        version       => 1,
        level         => 'M',
        casesensitive => 1,
        lightcolor    => Imager::Color->new(255, 255, 255),
        darkcolor     => Imager::Color->new(0, 0, 0),
    );
    my $img = $qrcode->plot("blah blah");
    $img->write(file => "qrcode.gif");

    # or instance method
    use Imager::QRCode qw(plot_qrcode);

    my $img = plot_qrcode("blah blah", \%params);
    $img->write(file => "qrcode.gif");

DESCRIPTION

Top

This module allows you to generate QR Code with Imager. This module use libqrencode '2.0.0' and above.

METHODS

Top

new
    $qrcode = Imager::QRCode->new(%params);

The new() constructor method instantiates a new Imager::QRCode object. new() accepts the following parameters.

  • size - Horizontal and vertical size of module(dot). Default is 4.
  • margin - Margin size of QR Code. Default is 3.
  • level - Error collectin level. Valid values are 'M', 'L', 'Q' or 'H'. Default is 'L'.
  • version - Version of the symbol. If specify '0', this module chooses the minimum version for the input data. Default is '0'.
  • mode - Encoding mode. Valid values are 'numerical', 'alpha-numerical', '8-bit' or 'kanji'. Default is '8-bit'.

    If not give casesensitive then should be given mode. If 'kanji' is given, characters will be encoded as Shift-JIS characters. If '8-bit' is given, all of non-alpha-numerical characters will be encoded as is. If you want to embed UTF-8 string, choose '8-bit'.
  • casesensitive - If your application is case-sensitive using 8-bit characters, set to '1'. Default is '0'.

plot($text)
    $img = $qrcode->plot("blah blah");

Create a new QR Code image. This method returns Imager object ploted QR Code with the given text.

INSTANT METHODS

Top

plot_qrcode($text, \%params)

Instant method. $text is input text. %params is same paramater as new().

SEE ALSO

Top

Imager, http://www.qrcode.com/, http://megaui.net/fukuchi/works/qrencode/index.en.html

AUTHOR

Top

Yoshiki KURIHARA <kurihara __at__ cpan.org>

THANKS

Top

Tokuhiro Matsuno

LICENCE AND COPYRIGHT

Top


Imager-QRCode documentation Contained in the Imager-QRCode distribution.

package Imager::QRCode;

use warnings;
use strict;
use base qw(Exporter);
use vars qw(@ISA $VERSION @EXPORT_OK);

@EXPORT_OK = qw(plot_qrcode);

use Carp qw(croak);
use Imager 0.55;

BEGIN {
    $VERSION = '0.033';
    eval {
        require XSLoader;
        XSLoader::load('Imager::QRCode', $VERSION);
        1;
    } or do {
        require DynaLoader;
        push @ISA, 'DynaLoader';
        bootstrap Imager::QRCode $VERSION;
    };
}

sub new {
    my $class  = shift;
    my $params = scalar ref $_[0] eq 'HASH' ? $_[0] : { @_ };
    return bless { params => $params }, $class;
}

sub plot {
    my ( $self, $text ) = @_;
    $text or croak 'Not enough arguments for plot()';
    return _imager( _plot($text, $self->{params}) );
}

sub plot_qrcode {
    my ( $text, $params ) = @_;
    $text or croak 'Not enough arguments for plot()';
    $params ||= {} if !$params || ref $params ne 'HASH';
    return _imager( _plot( $text, $params ) );
}

sub _imager {
    my $raw = shift;
    ref $raw eq 'Imager::ImgRaw' or croak "_imager() argument must be Imager::ImgRaw";
    my $img = Imager->new;
    $img->{IMG} = $raw;
    return $img;
}

1; # Magic true value required at end of module
__END__