QRCode se abrevia como Quic Response Code y estamos bastante familiarizados con QRCodes hoy en día. Se utiliza para pagos en línea autenticados y rápidos. Un código QR utiliza cuatro modos de codificación estandarizados (numérico, alfanumérico, byte/binario y kanji) para almacenar datos de manera eficiente; También se pueden utilizar extensiones.
Un QRCode es una disposición de cuadrados en blanco y negro y se puede leer con varios escáneres de QRCode y es conveniente hoy en día porque cada teléfono inteligente tiene una aplicación de escáner de QRcode.
Biblioteca utilizada para generar QRCodes (ZXing)
ZXing («Zebra Crossing») es la popular API para el procesamiento de códigos QR en Java. Su biblioteca tiene múltiples componentes y usaremos el ‘núcleo’ para la creación de códigos QR en nuestro ejemplo de Java.
¿Cómo generar código QR?
El siguiente código es un ejemplo para crear una imagen de código QR.
- Descargue la biblioteca ZXING desde aquí .
- Agregue la dependencia ZXING en el archivo maven .
XML
<dependencies> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.0</version> </dependency> </dependencies>
- Escriba el código para generar un código QR y guárdelo como un archivo jpg en la carpeta nativa.
Java
// Java code to generate QR code import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Map; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.NotFoundException; import com.google.zxing.WriterException; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; public class MyQr { // Function to create the QR code public static void createQR(String data, String path, String charset, Map hashMap, int height, int width) throws WriterException, IOException { BitMatrix matrix = new MultiFormatWriter().encode( new String(data.getBytes(charset), charset), BarcodeFormat.QR_CODE, width, height); MatrixToImageWriter.writeToFile( matrix, path.substring(path.lastIndexOf('.') + 1), new File(path)); } // Driver code public static void main(String[] args) throws WriterException, IOException, NotFoundException { // The data that the QR code will contain String data = "www.geeksforgeeks.org"; // The path where the image will get saved String path = "demo.png"; // Encoding charset String charset = "UTF-8"; Map<EncodeHintType, ErrorCorrectionLevel> hashMap = new HashMap<EncodeHintType, ErrorCorrectionLevel>(); hashMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); // Create the QR code and save // in the specified folder // as a jpg file createQR(data, path, charset, hashMap, 200, 200); System.out.println("QR Code Generated!!! "); } }
El archivo de salida será por nombre demo.jpg
Al escanear este código QR, será redirigido a la página de inicio de geeksforgeeks .
¿Cómo generar código QR?
Después de generar el código QR, también podemos leer el archivo de imagen del código QR usando la biblioteca ZXing . A continuación se muestra el código para hacerlo.
Java
// Java code to read the QR code import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.imageio.ImageIO; import com.google.zxing.BarcodeFormat; import com.google.zxing.BinaryBitmap; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatReader; import com.google.zxing.MultiFormatWriter; import com.google.zxing.NotFoundException; import com.google.zxing.Result; import com.google.zxing.WriterException; import com.google.zxing.client.j2se.BufferedImageLuminanceSource; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.common.HybridBinarizer; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; public class QRCode { // Function to read the QR file public static String readQR(String path, String charset, Map hashMap) throws FileNotFoundException, IOException, NotFoundException { BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer( new BufferedImageLuminanceSource( ImageIO.read( new FileInputStream(path))))); Result result = new MultiFormatReader().decode(binaryBitmap); return result.getText(); } // Driver code public static void main(String[] args) throws WriterException, IOException, NotFoundException { // Path where the QR code is saved String path = "F:\user\QRCodes"; // Encoding charset String charset = "UTF-8"; Map<EncodeHintType, ErrorCorrectionLevel> hashMap = new HashMap<EncodeHintType, ErrorCorrectionLevel>(); hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L); System.out.println( "QRCode output: " + readQRCode(filePath, charset, hintMap)); } }
Producción:
QRCode output: www.geeksforgeeks.org
Publicación traducida automáticamente
Artículo escrito por RahulSabharwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA