summaryrefslogtreecommitdiffstats
path: root/perl/ZBar/Image.pod
blob: 6848bddf3e00930a858e26a67e5d7c65b7a2d93b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#------------------------------------------------------------------------
#  Copyright 2008-2009 (c) Jeff Brown <spadix@users.sourceforge.net>
#
#  This file is part of the ZBar Bar Code Reader.
#
#  The ZBar Bar Code Reader is free software; you can redistribute it
#  and/or modify it under the terms of the GNU Lesser Public License as
#  published by the Free Software Foundation; either version 2.1 of
#  the License, or (at your option) any later version.
#
#  The ZBar Bar Code Reader is distributed in the hope that it will be
#  useful, but WITHOUT ANY WARRANTY; without even the implied warranty
#  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU Lesser Public License for more details.
#
#  You should have received a copy of the GNU Lesser Public License
#  along with the ZBar Bar Code Reader; if not, write to the Free
#  Software Foundation, Inc., 51 Franklin St, Fifth Floor,
#  Boston, MA  02110-1301  USA
#
#  http://sourceforge.net/projects/zbar
#------------------------------------------------------------------------

=pod

=head1 NAME

Barcode::ZBar::Image - image object to scan for bar codes

=head1 SYNOPSIS

    use Barcode::ZBar;
    
    my $image = Barcode::ZBar::Image->new();
    $image->set_format('422P');
    $image->set_size(114, 80);
    $image->set_data($raw_bits);
    
    my @symbols = $image->get_symbols();

=head1 DESCRIPTION

Barcode::ZBar::Image is used to pass images to the bar code scanner.
It wraps raw image data with the meta-data required to interpret it
(size, pixel format, etc)

=head2 Image Formats

Image data formats are represented by (relatively) standard "Four
Character Codes" (fourcc), represented by four character strings in
Perl.  A list of supported formats is available on the project wiki.

Examples:

=over 2

=item *

'GREY' - single 8bpp intensity plane

=item *

'BGR3' - 24bpp packed RGB component format

=item *

'YUYV' - 12bpp packed luminance/chrominance (YCbCr) format

=back

=head1 REFERENCE

=head2 Methods

=over 4

=item new()

Create a new Barcode::ZBar::Image object.  The size, pixel format and
data must be defined before the object may be used.

=item get_format()

=item set_format(I<format>)

Return/specify the fourcc code corresponding to the image pixel format.

=item get_sequence()

=item set_sequence(I<seq_num>)

Return/specify the video frame or page number associated with the image.

=item get_size()

=item set_size(I<width>, I<height>)

Return/specify the (I<width>, I<height>) image size tuple.

=item get_data()

=item set_data(I<raw>)

Return/specify the raw image data as a binary string.

=item get_symbols()

Return a list of scanned Barcode::ZBar::Symbol results attached to
this image.

=item convert_resize(I<format>, I<width>, I<height>)

=item convert(I<format>)

Return a new Barcode::ZBar::Image object converted to the indicated
fourcc format.  Returns C<undef> if the conversion is not supported.
Conversion complexity ranges from CPU intensive to trivial depending
on the formats involved.  Note that only a few conversions retain
color information.  convert actually calls convert_resize using the
source width and height.

=back

=head1 SEE ALSO

Barcode::ZBar, Barcode::ZBar::Image, Barcode::ZBar::Symbol

zbarimg(1), zbarcam(1)

http://zbar.sf.net

=head1 AUTHOR

Jeff Brown, E<lt>spadix@users.sourceforge.netE<gt>

=head1 COPYRIGHT AND LICENSE

Copyright 2008-2010 (c) Jeff Brown E<lt>spadix@users.sourceforge.netE<gt>

The ZBar Bar Code Reader is free software; you can redistribute it
and/or modify it under the terms of the GNU Lesser Public License as
published by the Free Software Foundation; either version 2.1 of
the License, or (at your option) any later version.

=cut