Generar código de barras y Códigos QR - Generación de códigos QR con ZXing
Los códigos QR o Quick Response Code son simple códigos de barras pero en 2 dimensiones que pueden ser leidos o escaneados por una cámara, como la de un teléfono móvil.
Un código QR consiste en cuadrados negros dispuestos en una cuadrícula cuadrada sobre un fondo blanco. Existen varias variantes de códigos QR que dependen del tamaño de los símbolos, el diseño, la codificación y la estructura.
Zxing es una librería para java y android que se pronuncia "Zebra Crossing" como el cruce peatonal de Abbey Road
Procedimiento:
Hay que agregar las dependencias de zxing-core
y zxing-javase
a nuestro propio proyeto
Con maven
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.4.0</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.4.0</version> </dependency>
Con gradel
compile "com.google.zxing:core:3.4.0" compile 'com.google.zxing:javase:3.4.0'
Manualmente añadir los jar al classpath descargandolos desde maven central
El siguiente paso es poner manos al código:
- Crear una instancia de
com.google.zxing.qrcode.QRCodeWriter
- Obtener un
BitMatrix
a través de encodear con el objeto QRCodeWriter, pasando el texto, el tipo de codigo y un alto y ancho - Por último escribir en un archivo el bitmatrix a través de método
MatrixToImageWriter.writeToPath
definiendo la extensión de la imagen y el path.
private static void generateQRCodeImage(String text, int width, int height, String filePath) throws WriterException, IOException { QRCodeWriter qrCodeWriter = new QRCodeWriter(); BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height); Path path = FileSystems.getDefault().getPath(filePath); MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path); }
filePath
exista, porque no lo crea y lanza una excepción.
Ejecutando en un main normal de toda la vida, obtendremos:
public static void main(String[] args) throws Exception { generateQRCodeImage("Hola juli =)", 350, 350, "D:/dev/qrcodes/holajuli.png"); }
Resultado
No hay comentarios:
Publicar un comentario