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:
A. Leitner, M. Oriol, A. Zeller, I. Ciupa, and B. Meyer. Proceedings of the Twenty-second IEEE/ACM International Conference on Automated Software Engineering, page 417--420. New York, NY, USA, ACM, (2007)