summaryrefslogtreecommitdiffstats
path: root/perl/ZBar
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 00:06:44 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-03-09 00:06:44 +0000
commit44cf8ec67278bd1ab6c7f83a9993f7a5686a9541 (patch)
tree5eec4b0d1a3f163d279c3c27c03324ba49fa235a /perl/ZBar
parentInitial commit. (diff)
downloadzbar-44cf8ec67278bd1ab6c7f83a9993f7a5686a9541.tar.xz
zbar-44cf8ec67278bd1ab6c7f83a9993f7a5686a9541.zip
Adding upstream version 0.23.93.upstream/0.23.93upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'perl/ZBar')
-rw-r--r--perl/ZBar/Image.pod145
-rw-r--r--perl/ZBar/ImageScanner.pod103
-rw-r--r--perl/ZBar/Processor.pod157
-rw-r--r--perl/ZBar/Symbol.pod179
4 files changed, 584 insertions, 0 deletions
diff --git a/perl/ZBar/Image.pod b/perl/ZBar/Image.pod
new file mode 100644
index 0000000..6848bdd
--- /dev/null
+++ b/perl/ZBar/Image.pod
@@ -0,0 +1,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
diff --git a/perl/ZBar/ImageScanner.pod b/perl/ZBar/ImageScanner.pod
new file mode 100644
index 0000000..dcbc21c
--- /dev/null
+++ b/perl/ZBar/ImageScanner.pod
@@ -0,0 +1,103 @@
+#------------------------------------------------------------------------
+# 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::ImageScanner - scan images for bar codes
+
+=head1 SYNOPSIS
+
+ use Barcode::ZBar;
+
+ my $scanner = Barcode::ZBar::ImageScanner->new();
+ $scanner->parse_config('i25.disable');
+ $scanner->scan_image($image);
+
+=head1 DESCRIPTION
+
+A Barcode::ZBar::ImageScanner is used to scan for bar codes in a
+Barcode::ZBar::Image.
+
+=head1 REFERENCE
+
+=head2 Methods
+
+=over 4
+
+=item new()
+
+Create a new bar code image scanner instance.
+
+=item get_results()
+
+Return a list of Barcode::ZBar::Symbol results from the last scanned
+image.
+
+=item scan_image([I<image>])
+
+Scan a Barcode::ZBar::Image for bar codes. The image must be in the
+"Y800" format. If necessary, use C<< I<$image>->convert("Y800") >> to
+convert from other supported formats to Y800 before scanning.
+
+=item enable_cache([I<enable>])
+
+Enable the inter-image result consistency cache.
+
+=item set_config(I<symbology>, I<config>, I<value>)
+
+Set config for indicated symbology (0 for all) to specified value.
+
+=item parse_config(I<configstr>)
+
+Apply a decoder configuration setting. See the documentation for
+C<zbarcam>/C<zbarimg> for available configuration options.
+
+=item recycle_image([I<image>])
+
+Remove previously decoded results from a Barcode::ZBar::Image and
+recycle the associated memory.
+
+=back
+
+=head1 SEE ALSO
+
+Barcode::ZBar, Barcode::ZBar::Image, 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
diff --git a/perl/ZBar/Processor.pod b/perl/ZBar/Processor.pod
new file mode 100644
index 0000000..96b1982
--- /dev/null
+++ b/perl/ZBar/Processor.pod
@@ -0,0 +1,157 @@
+#------------------------------------------------------------------------
+# 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::Processor - self-contained bar code reader
+
+=head1 SYNOPSIS
+
+setup:
+
+ use Barcode::ZBar;
+
+ my $reader = Barcode::ZBar::Processor->new();
+ $reader->init("/dev/video1", 1);
+ $reader->parse_config('code39.disable');
+ $reader->set_data_handler(\&my_handler);
+
+scan an image:
+
+ $reader->process_image($image);
+
+scan from video:
+
+ $reader->set_visible();
+ $reader->set_active();
+ $reader->user_wait();
+
+=head1 DESCRIPTION
+
+A Barcode::ZBar::Processor may be used to quickly create stand-alone
+bar code scanning applications. It has interfaces to scan images or
+video and to optionally display a video/image preview to a window.
+
+This interface is not well suited for integration with an existing
+GUI, as the library manages the optional preview window and any user
+interaction. Use a Barcode::ZBar::ImageScanner or Investigate the
+available widget interfaces for GUI applications.
+
+=head1 REFERENCE
+
+=head2 Methods
+
+=over 4
+
+=item new()
+
+Create a new bar code reader instance.
+
+=item init([I<video_device>], [I<enable_display>])
+
+Open a video input device and/or prepare to display output.
+
+=item set_data_handler([I<handler>], [I<closure>])
+
+Setup a callback to process results whenever new results are available
+from the video stream or a static image. The specified callable will
+be invoked with the associated Barcode::ZBar::Processor object and
+I<closure> as arguments. Closure may be achieved either using
+standard Perl closure or by manually passing a scalar via I<closure>.
+
+=item is_visible()
+
+=item set_visible([I<visible>])
+
+Test/set visibility of the output window.
+
+=item set_active([I<active>])
+
+Enable/disable video streaming and scanning for bar codes.
+
+=item get_results()
+
+Return a list of Barcode::ZBar::Symbol results from the last scanned
+image or video frame.
+
+=item user_wait([I<timeout>])
+
+Wait for the user to press a key/button or close the window. Bar
+codes will continue to be processed if video is active.
+
+=item process_one([I<timeout>])
+
+Enable video and scan until at least one barcode is found. Note that
+multiple results may still be returned.
+
+=item process_image([I<image>])
+
+Scan a Barcode::ZBar::Image for bar codes.
+
+=item parse_config(I<configstr>)
+
+Apply a decoder configuration setting. See the documentation for
+C<zbarcam>/C<zbarimg> for available configuration options.
+
+=item request_size(I<width>, I<height>)
+
+Request a preferred size for the video image from the device. The
+request may be adjusted or completely ignored by the driver. Must be
+called before C<init()>
+
+=item force_format(I<input>, I<output>)
+
+force specific input and output formats for debug/testing.
+
+=item set_config(I<symbology>, I<config>, I<value>)
+
+Set config for indicated symbology (0 for all) to specified value.
+@returns 0 for success, non-0 for failure (config does not apply to
+specified symbology, or value out of range)
+
+=back
+
+=head1 SEE ALSO
+
+Barcode::ZBar, Barcode::ZBar::Image, Barcode::ZBar::ImageScanner
+
+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
diff --git a/perl/ZBar/Symbol.pod b/perl/ZBar/Symbol.pod
new file mode 100644
index 0000000..6a21b1e
--- /dev/null
+++ b/perl/ZBar/Symbol.pod
@@ -0,0 +1,179 @@
+#------------------------------------------------------------------------
+# Copyright 2008-2010 (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::Symbol - bar code scan result object
+
+=head1 SYNOPSIS
+
+ my @symbols = $image->get_symbols();
+ foreach my $sym (@symbols) {
+ print("decoded: " . $sym->get_type() .
+ ":" . $sym->get_data().
+ "(" . $sym->get_count() . ")");
+ }
+
+=head1 DESCRIPTION
+
+Barcode::ZBar::Symbol objects are constant results returned for each
+bar code scanned from images or video. This object wraps the raw
+symbol data with additional information about the decode (symbology,
+confidence, location, etc)
+
+=head1 REFERENCE
+
+=head2 Methods
+
+=over 4
+
+=item get_type()
+
+The type of bar code "symbology" from which the data was decoded.
+
+=item get_data()
+
+The decoded data string. Note that some symbologies can encode binary
+data.
+
+=item get_quality()
+
+Confidence metric. An unscaled integer value that indicates something
+(intentionally unspecified) about the reliability of this result
+relative to another. Larger values are better than smaller values,
+where "large" and "small" are application dependent. Expect this
+definition to become more specific as the metric is enhanced.
+
+=item get_count()
+
+Current cache count of the symbol. This integer value provides
+inter-scan reliability and redundancy information if enabled at the
+Barcode::ZBar::ImageScanner.
+
+=item get_orientation()
+
+General orientation of decoded symbol. This returns one of the
+Barcode::ZBar::Orient constants, which provide a coarse, axis-aligned
+indication of symbol orientation.
+
+=item get_components()
+
+Components of a composite result. This yields an array of physical
+component symbols that were combined to form a composite result.
+
+=item get_configs()
+
+Retrieve symbology boolean config settings. Returns a bitmask
+indicating which configs were set for the detected
+symbology during decoding.
+
+=item get_modifiers()
+
+Retrieve symbology modifier flag settings. Returns a bitmask
+indicating which characteristics were detected during decoding.
+
+=item get_loc()
+
+Retrieve an array of symbol location points (x,y)
+
+=over 2
+
+=item *
+
+A negative value indicates that this result is still uncertain
+
+=item *
+
+A zero value indicates the first occurrence of this result with high
+confidence
+
+=item *
+
+A positive value indicates a duplicate scan
+
+=back
+
+=back
+
+=head2 Constants
+
+Bar code type "symbology" constants:
+
+=over 4
+
+=item NONE
+
+=item PARTIAL
+
+=item EAN13
+
+=item EAN8
+
+=item UPCA
+
+=item UPCE
+
+=item ISBN10
+
+=item ISBN13
+
+=item I25
+
+=item CODABAR
+
+=item CODE39
+
+=item CODE93
+
+=item CODE128
+
+=item QRCODE
+
+=item PDF417
+
+=back
+
+=head1 SEE ALSO
+
+Barcode::ZBar, Barcode::ZBar::Image
+
+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