In questo post vediamo come creare un QrCode usando QRGen che è una libreria che mette a disposizione una api basata sul builder pattern che permette di creare in maniera semplice un’immagine QrCode.
Settiamo le dipendenze Maven
QRGen non è hostato sul repository Maven Central ma è disponibile su jitpack.io. Quindi oltre alle dipendenze e’ necessario settare il repository nel pom.xml:
<dependencies> <dependency> <groupId>com.github.kenglxn.qrgen</groupId> <artifactId>javase</artifactId> <version>2.5.0</version> </dependency> </dependencies> <repositories> <repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository> </repositories>
Fluent Builder API per la generazione di QRCode
Vediamo un primo esempio dell’utilizzo della libreria:
FileOutputStream fos = new FileOutputStream("/home/giuseppe/myQRCode.jpg"); QRCode.from("www.losviluppatore.it") // settiamo il testo da codificare .to(ImageType.JPG) // settiamo il tipo di immagine da generare .withSize(250, 250) // settiamo la dimensione dell'immagine .writeTo(fos); // scriviamo l'immagine su un file
Questo è il risultato:
Cambiamo i colori del QRCode
E’ possibile cambiare i colori di default (bianco e nero) usando il formato RGB con l’alpha (trasparenza) 0x(alpha: 1 byte)(RGB: 3 bytes). E’ possibile usare la classe java.awt.Color per settare velocemente i colori base.
FileOutputStream fos = new FileOutputStream("/home/giuseppe/myColoredQRCode.jpg"); QRCode.from("www.losviluppatore.it") .to(ImageType.JPG) .withColor(Color.RED.getRGB(), Color.YELLOW.getRGB()) //colore principale rosso su sfondo giallo .withSize(250, 250) .withErrorCorrection(ErrorCorrectionLevel.Q) // settiamo il livello di correzione .writeTo(fos);
E questo è il risultato:
E’ possibile utilizzare QRGen anche su android: Esiste uno speciale metodo bitmap() che restituisce un android.graphics.Bitmap da usare all’interno di una ImageView.
Per maggiori informazioni sulle feature e l’uso della libreria : QRGen: a simple QRCode generation api for java built on top ZXING
Grazie per la guida, fatta molto bene.
Una curiosità: vorrei ottenere il qrcode partendo dal file json
passando per CBOR , COSE, COMPRESSIONE E BASE45
Grazie
Tano