zbarimg - scan and decode bar codes from image file(s)
zbarimg [-qv] [--polygon] [--quiet]
[--verbose[=n]]
{-dD | --display | --nodisplay | --xml |
--noxml |
-S[symbology.]config[=value]
|
--set [symbology.]config[=value]
| image...}
zbarimg {-h | --help |
--version}
For each specified image file zbarimg scans the
image for bar codes and prints any decoded data to stdout. Images may
optionally be displayed to the screen.
The underlying library currently supports EAN-13 (including UPC
and ISBN subsets), EAN-8, DataBar, DataBar Expanded, Code 128, Code 93, Code
39, Codabar, Interleaved 2 of 5 and QR Code symbologies. The specific type
of each detected symbol is printed with the decoded data.
Note that "image" in this context refers to any
format supported by ImageMagick, including many vector formats such as PDF
and PostScript. Keep in mind that vector formats are rasterized before
scanning; manually rasterize vector images before scanning to avoid
unintentionally corrupting embedded barcode bitmaps.
This program follows the usual GNU command line syntax. Single
letter options may be bundled, long options start with two dashes (`-').
-h, --help
Print a short help message describing command line
options to standard output and exit
--version
Print program version information to standard output and
exit
-v, --verbose[=n]
Increase debug output level. Multiple -v options
create more spew. Alternatively specify n to set the debug level
directly
-S[symbology.]config[=value],
--set
[symbology.]config[=value]
Set decoder configuration option
config for
symbology to
value.
value defaults to 1 if omitted.
symbology is one of
ean13,
ean8,
upca,
upce,
isbn13,
isbn10,
i25,
codabar,
code39,
code93,
code128,
qrcode or the special
value
*. If
symbology is omitted or
*, the
config
will be set for all applicable symbologies. These are the currently recognized
configs. Prefix a config with "no-" to negate it. Not all
configs are appropriate for every symbology.
enable
Control decoding/reporting of a symbology. For
symbologies which are just subsets of ean13 (upca, upce,
isbn13, isbn10), this config controls whether the subsets are
detected and reported as such. These special cases are disabled by default,
all other symbologies default to enabled
disable
Antonym for enable
emit-check
Control whether check digits are included in the decoded
output. Enabled by default. This config does not apply for code128,
which never returns the check digit. It also not apply for cases where the
check digit is disabled (see add-check). Check digits are currently not
implemented for i25 or code39
add-check
Enable decode and verification of a check digit for
symbologies where it is optional: this will include code39 and
i25, neither of which implements the check digit yet
ascii
Enable escape sequences that encode the full ASCII
character set. This would apply to code39, except that it's not
implemented either...
position
Enable collection of symbol position information. Enabled
by default. Currently, the position information is unusable, so you can save a
few cycles by disabling this.
test-inverted
Specially for QR code images, sometimes the image is
inverted, e. g. lines are written in white instead of black. This option makes
ZBar to invert the image and parse again, in case it fails using the normal
order. Enabling it affects all decoders.
min-length=n,
max-length=n
Bound the number of decoded characters in a valid symbol.
If a decode result is outside the configured min/max range (inclusive), it
will not be reported. Set to 0 to disable the corresponding check. This
setting applies to variable-length symbologies: i25, codabar,
code39, code128 and pdf417. min-length defaults to
6 for i25 and 1 for code39 (per Code 39 autodiscrimination
recommendation); all others default to 0
x-density=n,
y-density=n
Adjust the density of the scanner passes. Lower values
scan more of the image at the cost of decreased performance. Setting to 0
disables scanning along that axis. Defaults are both 1.
--polygon
Ouput points of the polygon containing the code bar.
Using a format compatible with The <polygon> element of the Scalable
Vector Graphics (SVG) markup language
-q, --quiet
Quiet operation; only output decoded symbol data.
specifically this disables the statistics line printed (to stderr) before
exiting, as well as the warning message printed (also to stderr) when no
barcodes are found in an image
-d, --display, -D, --nodisplay
Enable/disable display of subsequent image files,
until next --display or --nodisplay is encountered. This option
may appear multiple times to enable display of specific images. Image display
is disabled by default
--xml, --noxml
Enable/disable result output using an XML format. This
format wraps the raw data from the symbol with information about the scan
(such as page indices) in an easy to parse format. The latest schema is
available from
http://zbar.sourceforge.net/2008/barcode.xsd.
--raw
Enable raw symbol data output. This format prints symbol
data separated by newlines without the additional symbology type information
that is printed by default
Scan a PNG image of a UPC bar code symbol and pass resulting data
to a script that searches for the code in a database and does something
useful with it:
zbarimg product.png | upcrpc.py
The upcrpc.py example script included in the examples/
subdirectory of the distribution will make an XMLRPC call to a popular
internet UPC database and print the product description if found.
Scan a JPEG image containing several barcodes and display the
image in a window, also disabling recognition of Interleaved 2 of 5 codes to
prevent confusion with other symbologies or background noise:
zbarimg --display -Si25.disable label.jpg
Look in a scanned document only for Code 39, using XML output
format so the page numbers are available. To enable only Code 39, first all
symbologies are disabled, then Code 39 is re-enabled:
zbarimg --xml -Sdisable -Scode39.enable scan.tiff
zbarimg returns an exit code to indicate the status of the
program execution. Current exit codes are:
0
Barcodes successfully detected in all images. Warnings
may have been generated, but no errors.
1
An error occurred while processing some image(s). This
includes bad arguments, I/O errors and image handling errors from
ImageMagick.
2
ImageMagick fatal error.
3
The user quit the program before all images were scanned.
Only applies when running in interactive mode (with --display)
4
No barcode was detected in one or more of the images. No
other errors occurred.
Jeff Brown <spadix@users.sourceforge.net>
Lead developer
Copyright © 2007-2010 Jeff Brown
All Rights Reserved