Les QRCode sont des matrices de points plus riches que les codes barres mais suffisamment concis pour être interprété rapidement grâce notement à une redondance qui corrige les erreurs.
La génération de qrcode est aisée sous linux où il existe l’outil qrencode disponible dans le dépôt Ubuntu. Les QRCode peuvent contenir du texte ou des données binaires. On peut donc y stocker une carte de visite au format vcard qui est du texte (qui peut contenir du binaire comme on le verra).
Notre carte de visite est saisie à un seul endroit disons dans notre machine de bureau qui est sous Ubuntu bien entendu. Dans les informations personnelles de l’utilisateur sont présentes toutes les données de la carte de visite. On va voir comment les extraires dans un vcard puis générer le qrcode correspondant.
Extraction du vcard
Sous Ubuntu c’est au bureau GNOME que nous nous adressons afin d’obtenir la carte de visite de l’utilisateur. Nous passons par le binding python de Evolution (suite communicante mail, agenda etc) et la bibliothèque vobject:
Voici le script myvcard.py :
#!/usr/bin/python # -*- encoding: UTF-8 -*- import evolution c = evolution.ebook.get_self_contact() v = c.get_vcard_string() import vobject vo = vobject.readOne(v) # remove photo because too big for qrcode and N900 may not handle it del vo.photo print vo.serialize()
Ce script affiche sur la sortie standard la vcard de l’utilisateur.
Génération du qrcode
Maintenant que le contenu de la vcard est obtenu il suffit de générer le qrcode. Pour cela il suffit de lancer le script suivant, myvcard2qrcode.sh:
#!/bin/bash ./myvcard.py | qrencode -o $1
Il prend un argument qui est le fichier PNG de sortie. Par exemple:
./myvcard2qrcode.sh tb.png
va générer le fichier tb.png, image du qrcode !
Tags: Evolution N900 Python qrcode Vcard