Crear códigos QR con Java
Vamos hacer un pequeño sistema que nos permite
generar códigos QR. Lo vamos a desarrollar con Java y NetBeans. Lo primero que
vamos hacer es descargar la librería zxing-core-2.0.jar
Ahora vamos a crear un nuevo proyecto llamado
QRTest para iniciar a escribir nuestro código. Cuando tenemos el proyecto listo
lo que tenemos que hacer es agregar la librería zxing-core-2.0.jar para poder generar
los códigos QR.
Ahora debemos importar las siguientes librerías
en la clase donde vamos a generar nuestros códigos QR.
import com.google.zxing.BarcodeFormat; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.QRCodeWriter; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.UUID; import java.util.logging.Level; import java.util.logging.Logger; import javax.imageio.ImageIO;
Vamos a dar un vistazo al código.
public static void main(String[] args) { try { String content = "http://www.google.com"; String filePath = ""; String fileType = "png"; int size = 125; UUID uuid = UUID.randomUUID(); String randomUUIDString = uuid.toString(); QRCodeWriter qrcode = new QRCodeWriter(); BitMatrix matrix = qrcode.encode(content, BarcodeFormat.QR_CODE, size, size); File qrFile = new File(filePath + randomUUIDString + "." + fileType); int matrixWidth = matrix.getWidth(); BufferedImage image = new BufferedImage(matrixWidth, matrixWidth, BufferedImage.TYPE_INT_RGB); image.createGraphics(); Graphics2D graphics = (Graphics2D) image.getGraphics(); graphics.setColor(Color.WHITE); graphics.fillRect(0, 0, matrixWidth, matrixWidth); graphics.setColor(Color.BLACK); for (int b = 0; b < matrixWidth; b++) { for (int j = 0; j < matrixWidth; j++) { if (matrix.get(b, j)) { graphics.fillRect(b, j, 1, 1); } } } ImageIO.write(image, fileType, qrFile); } catch (WriterException ex) { Logger.getLogger(QRTest.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(QRTest.class.getName()).log(Level.SEVERE, null, ex); } }
Primero vamos a tener la content la cual será el
contenido de la imagen de nuestro código QR. Luego la variable filePath donde
vamos a guardar la imagen, en este momento no le vamos a dar ninguna dirección para
guardarla donde se ejecute nuestro sistema. La variable fileType es el formato
de nuestra variable y en nuestro caso la vamos almacenar de tipo png. La que
sigue es size con la que vamos a definir el tamaño de la imagen.
Ahora vamos a crear la variable uuid con la que
vamos a crear el nombre de la imagen que será un texto generado para que cada
una tenga un nombre distinto.
Debemos crear una variable de tipo BitMatrix
que va a representar nuestra imagen en bits hasta que sea almacenada. El nombre
de la variable es matrix. Esta variable requiere de un objeto que vamos a
generar a partir de un objeto QRCodeWriter que nos va permitir crear nuestro código
QR.
Ahora vamos a ver la variable image que es un BufferedImage
donde vamos a contener nuestra imagen en memoria para que después la podamos
escribir en disco duro.
Usando un objeto de tipo Graphics2D vamos a
poder generar la imagen como tal para poder ser escrita en disco duro. Le damos
un tamaño, un fondo, etc y ya la imagen esta lista para ser escrita.
Finalmente usando la clase ImageIO vamos a
escribir la imagen. La imagen esta contenida en el objeto image, el tipo de
imagen esta en la variable fileType y la dirección está en la variable qrFile.
El resultado
la imagen que deseamos generar con nuestro contenido.
¿Quieres aprender java y C#?
Etiquetas: Java
2 comentarios:
Excelente post, cortita y al pie. Mejor imposible. Muchas gracias!!!
Excelente post. Muchas gracias.
Publicar un comentario
Suscribirse a Enviar comentarios [Atom]
<< Inicio