Generación de códigos QR en Java con ZXing (Zebra Crossing)
\n\nLos códigos QR se han convertido en una parte esencial de la web moderna y las aplicaciones móviles. Permiten transferir rápidamente enlaces, datos de contacto, información textual y mucho más. En el mundo de Java, una de las bibliotecas más populares y estables para trabajar con códigos QR es ZXing (Zebra Crossing).
\n\nEn este artículo, analizaremos en detalle cómo conectar ZXing a su proyecto, crear un código QR simple, personalizar su apariencia y guardarlo en un archivo. El material será útil tanto para principiantes como para desarrolladores experimentados que deseen agregar funcionalidad de generación de códigos QR a sus aplicaciones Java.
\n\n¿Qué es ZXing?
\n\nZXing (se pronuncia como "zebra crossing") es una biblioteca de código abierto para procesar códigos de barras unidimensionales y bidimensionales. Está escrita en Java y admite múltiples formatos: código QR, Data Matrix, Aztec, PDF417 y otros. Las principales capacidades son:
\n\n- \n
- Generación (creación) de códigos QR a partir de texto, URL, contactos, etc. \n
- Lectura (decodificación) de códigos QR desde imágenes. \n
- Personalización de color, tamaño y nivel de corrección de errores. \n
- Salida en varios formatos gráficos (PNG, JPEG, SVG). \n
- Soporte para Java SE, Android, así como otros lenguajes JVM (Kotlin, Scala). \n
La biblioteca es mantenida activamente por la comunidad y se utiliza en miles de proyectos en todo el mundo.
\n\nConexión de ZXing al proyecto
\n\nLa forma más sencilla de agregar ZXing a su proyecto es usar el sistema de compilación Maven o Gradle. Si usa Maven, agregue la siguiente dependencia al archivo pom.xml:
<dependency>\n <groupId>com.google.zxing</groupId>\n <artifactId>core</artifactId>\n <version>3.5.3</version>\n</dependency>\n<dependency>\n <groupId>com.google.zxing</groupId>\n <artifactId>javase</artifactId>\n <version>3.5.3</version>\n</dependency>\n\n\nPara Gradle (build.gradle):
\n\nimplementation 'com.google.zxing:core:3.5.3'\nimplementation 'com.google.zxing:javase:3.5.3'\n\n\nEl módulo core contiene las clases principales para trabajar con códigos, y javase contiene utilidades auxiliares para Java SE (por ejemplo, para trabajar con imágenes).
Creación de un código QR simple
\n\nVeamos un ejemplo básico: generación de un código QR que contiene la cadena de texto "Hello, PythonLib!".
\n\nimport com.google.zxing.BarcodeFormat;\nimport com.google.zxing.WriterException;\nimport com.google.zxing.common.BitMatrix;\nimport com.google.zxing.qrcode.QRCodeWriter;\n\nimport javax.imageio.ImageIO;\nimport java.awt.image.BufferedImage;\nimport java.io.File;\nimport java.io.IOException;\n\npublic class QRCodeGenerator {\n public static void main(String[] args) {\n String text = "Hello, PythonLib!";\n int width = 300;\n int height = 300;\n\n QRCodeWriter qrCodeWriter = new QRCodeWriter();\n try {\n BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);\n\n BufferedImage qrImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);\n for (int x = 0; x < width; x++) {\n for (int y = 0; y < height; y++) {\n qrImage.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF);\n }\n }\n\n File outputFile = new File("qrcode.png");\n ImageIO.write(qrImage, "png", outputFile);\n System.out.println("Código QR guardado en el archivo: " + outputFile.getAbsolutePath());\n\n } catch (WriterException | IOException e) {\n e.printStackTrace();\n }\n }\n}\n\n\nEste código crea un código QR en blanco y negro de 300x300 píxeles y lo guarda en el archivo qrcode.png.
Con
También en la biblioteca
Trabajo con XML en C++: bibliotecas PugiXML y RapidXML
Envío de SMS en PHP: Revisión de bibliotecas API para integración
Trabajo con CSV en PHP: lectura, escritura y procesamiento de datos