In this tutorial, we’re gonna look at Kotlin examples that read and write QR Code using ZXing.
I. Dependency
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.2</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.2</version> </dependency> |
II. Write Data to QR Code
package com.javasampleapproach.kotlin.qrcode import java.io.IOException import java.nio.file.FileSystems import java.nio.file.Path import com.google.zxing.BarcodeFormat import com.google.zxing.WriterException import com.google.zxing.client.j2se.MatrixToImageWriter import com.google.zxing.common.BitMatrix import com.google.zxing.qrcode.QRCodeWriter @Throws(WriterException::class, IOException::class) fun main(args: Array<String>?) { val qrCodeWriter = QRCodeWriter() val bitMatrix = qrCodeWriter.encode( "JavaSampleApproach\nJava Technology, Spring Framework", BarcodeFormat.QR_CODE, 350, 350) // width x height val path = FileSystems.getDefault().getPath("JSA-QRCode.png") MatrixToImageWriter.writeToPath(bitMatrix, "PNG", path) } |
A QR Code is generated:
III. Read Data from QR Code
package com.javasampleapproach.kotlin.qrcode import java.awt.image.BufferedImage import java.io.File import java.io.IOException import javax.imageio.ImageIO import com.google.zxing.BinaryBitmap import com.google.zxing.LuminanceSource import com.google.zxing.MultiFormatReader import com.google.zxing.NotFoundException import com.google.zxing.Result import com.google.zxing.client.j2se.BufferedImageLuminanceSource import com.google.zxing.common.HybridBinarizer @Throws(IOException::class, NotFoundException::class) fun main(args: Array<String>?) { val QRfile = File("JSA-QRCode.png") val bufferedImg = ImageIO.read(QRfile) val source = BufferedImageLuminanceSource(bufferedImg) val bitmap = BinaryBitmap(HybridBinarizer(source)) val result = MultiFormatReader().decode(bitmap) System.out.println("Barcode Format: " + result.getBarcodeFormat()) System.out.println("Content: " + result.getText()) } |
Check result in Console:
Barcode Format: QR_CODE Content: JavaSampleApproach Java Technology, Spring Framework |
I don’t what to do, when my “MatrixToImageWriter” don’t have writeToPath in repositore
zdciadoxklordypgnqwszrslajdffj