ZXing (pronounced "zebra crossing") is an open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages. Our focus is on using the built-in camera on mobile phones to scan and decode barcodes on the device, without communicating with a server. However the project can be used to encode and decode barcodes on desktops and servers as well. We currently support these formats:
P. Ziegler, K. Dittrich, and E. Hunt. Proceedings of the 2008 IEEE 24th International Conference on Data Engineering Workshop, page 250--253. Washington, DC, USA, IEEE Computer Society, (2008)