[java] QR Code encoding and decoding using zxing

For what it's worth, my groovy spike seems to work with both UTF-8 and ISO-8859-1 character encodings. Not sure what will happen when a non zxing decoder tries to decode the UTF-8 encoded image though... probably varies depending on the device.

// ------------------------------------------------------------------------------------
// Requires: groovy-1.7.6, jdk1.6.0_03, ./lib with zxing core-1.7.jar, javase-1.7.jar 
// Javadocs: http://zxing.org/w/docs/javadoc/overview-summary.html
// Run with: groovy -cp "./lib/*" zxing.groovy
// ------------------------------------------------------------------------------------

import com.google.zxing.*
import com.google.zxing.common.*
import com.google.zxing.client.j2se.*

import java.awt.image.BufferedImage
import javax.imageio.ImageIO

def class zxing {
    def static main(def args) {
        def filename = "./qrcode.png"
        def data = "This is a test to see if I can encode and decode this data..."
        def charset = "UTF-8" //"ISO-8859-1" 
        def hints = new Hashtable<EncodeHintType, String>([(EncodeHintType.CHARACTER_SET): charset])

        writeQrCode(filename, data, charset, hints, 100, 100)

        assert data == readQrCode(filename, charset, hints)
    }

    def static writeQrCode(def filename, def data, def charset, def hints, def width, def height) {
        BitMatrix matrix = new MultiFormatWriter().encode(new String(data.getBytes(charset), charset), BarcodeFormat.QR_CODE, width, height, hints)
        MatrixToImageWriter.writeToFile(matrix, filename.substring(filename.lastIndexOf('.')+1), new File(filename))
    }

    def static readQrCode(def filename, def charset, def hints) {
        BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new BufferedImageLuminanceSource(ImageIO.read(new FileInputStream(filename)))))
        Result result = new MultiFormatReader().decode(binaryBitmap, hints)

        result.getText()        
    }

}

Examples related to java

Under what circumstances can I call findViewById with an Options Menu / Action Bar item? How much should a function trust another function How to implement a simple scenario the OO way Two constructors How do I get some variable from another class in Java? this in equals method How to split a string in two and store it in a field How to do perspective fixing? String index out of range: 4 My eclipse won't open, i download the bundle pack it keeps saying error log

Examples related to barcode

NSCameraUsageDescription in iOS 10.0 runtime crash? Package doesn't exist error in intelliJ How to Generate Barcode using PHP and Display it as an Image on the same page Integrating the ZXing library directly into my Android application How to read barcodes with the camera on Android? QR Code encoding and decoding using zxing Using ZXing to create an Android barcode scanning app Free Barcode API for .NET BarCode Image Generator in Java How can I scan barcodes on iOS?

Examples related to qr-code

How to decode a QR-code image in (preferably pure) Python? Barcode scanner for mobile phone for Website in form How to create a QR code reader in a HTML5 website? How much data / information can we save / store in a QR code? Android, How to read QR code in my application? How to generate a QR Code for an Android application? Facebook page automatic "like" URL (for QR Code) What is the best Java QR code generator library? Free c# QR-Code generator Dynamically generating a QR code with PHP

Examples related to zxing

How to decode a QR-code image in (preferably pure) Python? Integrate ZXing in Android Studio Integrating the ZXing library directly into my Android application QR Code encoding and decoding using zxing Using ZXing to create an Android barcode scanning app