zbar is a library for decoding barcode symbols. http://zbar.sourceforge.net/
zbar is provided as a tcl package together with Androwish. Documentation for the zbar tcl package can be found here .
In case someone wants to build zbar for Linux manually, chw provided the following instructions:
"chw 2015-10-24: Should be possible with the latest check-in http://www.androwish.org/index.html/info/c82e1d09884d0458 . I've tested manually building it on a CentOS6 system with these commands:
$ gcc -fPIC -DUSE_TCL_STUBS=1 -DUSE_TK_STUBS=1 -DTCL_THREADS=1 -DPACKAGE=\"zbar\" -DPACKAGE_VERSION=\"0.10\" -c tclzbar.c $ gcc -shared -o libtclzbar.so tclzbar.o -lzbar -ltclstub8.5 -ltkstub8.5 $ wish8.5 % load ./libtclzbar.so Zbar
"
dzach 2015-10-25: To build zbar manually in a local directory (I had problems building it with autoconf), I brought the necessary files tclzbar.c and zbar.h in a local dir, and linked locally the /usr/lib/libzbar.so.0.2.0 lib (can also be copied) as libzbar.so. /usr/lib/libzbar.so.0.2.0 was installed earlier using:
$ sudo apt-get install zbarcam
from Ubuntu's repositories.
Using chw's instructions from above, the compile/link command lines were modified to look for the files in the local dir:
$ gcc -I`pwd` -fPIC -DUSE_TCL_STUBS=1 -DUSE_TK_STUBS=1 -DTCL_THREADS=1 -DPACKAGE=\"zbar\" -DPACKAGE_VERSION=\"0.10\" -c tclzbar.c $ gcc -shared -o libtclzbar.so tclzbar.o -lzbar -ltclstub8.5 -ltkstub8.5 -L`pwd`
To use zbar as a TCL package, a pkgIndex.tcl file was created, with the following contents:
package ifneeded zbar 0.10 \ [list load [file join $dir libtclzbar[info sharedlibextension]] Zbar]
To test zbar, I took a photo of a barcode from an item, e.g. food package, named it barcode_test.jpg, and then entered:
$ package require zbar 0.10 $ package req img::jpeg 1.4.4 $ image create photo test_img -file barcode_test.jpg test_img $ zbar::decode test_img 81 EAN13 2220063011920 ; # this is the result: milliseconds, symbol type, barcode