Traditional two-dimensional (2-D) barcodes, such as the QR code and PDF417, do not carry visual information. This work proposes a visually meaningful 2-D barcode (or 2-D image code) that carries not only hidden information, but also visual information. Watermarking is employed to hide information in a meaningful cover image to produce the 2-D image code. The 2-D image code can be printed or displayed and then captured using a camera-equipped mobile device. The hidden information is extracted for innovative applications. To resist distortions in the print-and-photo process, a perceptual shaping algorithm, based on Watson's DCT-based perceptual model, is proposed for use in the data hiding procedure. The detection performance that can be achieved using two classes of position-detection patterns is evaluated, and the best pattern is then used as a part of the 2-D image code. A web service is provided for generating the 2-D image codes and a Java-based decoder is developed for mobile phones. The results of practical experiments reveal the applicability, robustness, and high capacity of the proposed 2-D image code.