Génération de QRCodes avec ZXing
J’ai récemment découvert une librairie qui permet de générer et de lire des codes-barres de différents type (code 93, code 128, …) et surtout des QRCode (« Quick Response Code« ).
ZXing est un projet open-source implémenté en Java, mais il existe de nombreux modules de portage vers d’autres langages (c++, C#, Ruby, …) : http://code.google.com/p/zxing/
Maven
Au moment où j’écris cet article, la version 2.0 est la dernière release disponible.
<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>2.0</version> </dependency>
Utilisation (java)
Je crois que c’est par l’exemple (enfin surtout en pratiquant) qu’on comprend le mieux. Voici donc le code qui permet de générer un QRCode au format png de taille 400×300 :
String data = "Vraiment sympa les articles sur Blog'ele !"; int width = 400; int height = 300; String imageFormat = "png"; // encode final BitMatrix bitMatrix = new QRCodeWriter() .encode(data, BarcodeFormat.QR_CODE, width, height); // write in a file final FileOutputStream fileOutputStream = new FileOutputStream( new File("qrcode-text." + imageFormat)); try { MatrixToImageWriter.writeToStream(bitMatrix, imageFormat, fileOutputStream); } finally { fileOutputStream.close(); }
Ce bout de code lève des exceptions (WriterException, FileNotFoundException, IOException) que je vous laisse le soin de gérer.
Résultat
Type de données
Il est possible d’encoder différents types de données. Dans l’exemple ci-dessus, il faudra modifier la valeur de la variable data.
- texte (cas de l’exemple)
data = "bla bla bla";
- url
data = "http://code.google.com/p/zxing/"
- sms
data = "sms:+33311223344:texte"
data = "mail:p.dupond@example.com?subject=Sujet%20du%20courrier &cc=pierre@example.org&bcc=jacques@example.net&body=Bonjour";
- et il y a encore bien d’autres types de données possible : appel, mms, vcard, twitter, wifi, …
Si vous voulez vous amuser à générer des QRCodes ou vous rendre compte de tout ce qu’il est possible de faire, il y a de nombreux générateurs en ligne :
Et si je le flash ?
Il existe pas mal d’applications qui permettent de flasher des QRCodes, voilà ce que ça donne avec celles que j’utilise :
avec FlashCode
avec Barcodes
Pour le fun…
Là on sort un peu de l’aspect développement de QRCode, mais je voulais vous en montrer quelques-en qui valent le détour.
Parce que oui, il est possible de faire des QRCodes personnalisés, c’est à dire intégrant un logo avec des jolies couleurs. Le système Reed-Solomon est utilisé pour la correction d’erreurs lors de la lecture, il est donc possible de se permettre des extravagances parce que le code contient jusqu’à 30 % de redondance.
Publié le 8 juin 2012, dans Dev, et tagué code, exemple, java, librarie, qrcode, zxing. Bookmarquez ce permalien. Poster un commentaire.
Poster un commentaire
Comments 0