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"
  • mail
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.

Publicités

Publié le 8 juin 2012, dans Dev, et tagué , , , , , . Bookmarquez ce permalien. Poster un commentaire.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :