Generación de códigos QR en Java

Requisitos previos

Generar el código QR de una URL

import java.awt.image.BufferedImage;
import java.io.FileOutputStream;

import javax.imageio.ImageIO;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.Writer;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;

// QR Code Generator in Java using opensource library ZXing
public class GenerateQRCode {

	// Image properties
	private static final int qr_image_width = 400;
	private static final int qr_image_height = 400;
	private static final String IMAGE_FORMAT = "png";
	private static final String IMG_PATH = "c:/temp/qrcode.png";

	// Let's do it
	public static void main(String[] args) throws Exception {

		// URL to be encoded
		String data = "http://www.google.com";

		// Encode URL in QR format
		BitMatrix matrix;
		Writer writer = new QRCodeWriter();
		try {

			matrix = writer.encode(data, BarcodeFormat.QR_CODE, qr_image_width,	qr_image_height);

		} catch (WriterException e) {
			e.printStackTrace(System.err);
			return;
		}

		// Create buffered image to draw to
		BufferedImage image = new BufferedImage(qr_image_width,
                   qr_image_height, BufferedImage.TYPE_INT_RGB);

		// Iterate through the matrix and draw the pixels to the image
		for (int y = 0; y < qr_image_height; y++) {
			for (int x = 0; x < qr_image_width; x++) {
				int grayValue = (matrix.get(x, y) ? 0 : 1) & 0xff;
				image.setRGB(x, y, (grayValue == 0 ? 0 : 0xFFFFFF));
			}
		}

		// Write the image to a file
		FileOutputStream qrCode = new FileOutputStream(IMG_PATH);
		ImageIO.write(image, IMAGE_FORMAT, qrCode);

		qrCode.close();

	}

}

Una vez ejecutado el programa, se crea la imagen del código QR.

Ahora ya se puede escanear con el móvil y acceder a la URL de Google.

About these ads

  1. Pingback: Zxing | TagHall

  2. Hola me envia un error en la siguiente linea.

    matrix = writer.encode(data, BarcodeFormat.QR_CODE, qr_image_width, qr_image_height);

    con el siguiente error:

    Exception in thread “main” java.lang.RuntimeException: Uncompilable source code – incompatible types
    required: com.google.zxing.common.BitMatrix
    found: com.google.zxing.common.ByteMatrix

    Alguna idea?

  3. David,

    Supongo que han cambiado los métodos en la nueva versión (2.0). El código de este artículo es para la versión 1.7 de Zxing.

    Saludos


Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s