Désormais, les codes QR sont partout, permettant souvent de faire le lien entre un document papier et un appareil mobile. On les retrouve ainsi sur des dépliants, l'emballage de certains produits ou un passe sanitaire. Ils ont l'avantage d'être simples à générer, on peut même le faire en ligne de commandes.
Les codes QR ont été créés dans les années 90 et ont été libérés il y a plus de 20 ans par Denso Wave. Chacun peut donc en profiter. Ils sont standardisés par la norme ISO/IEC 18004:2015 et permettent d'encoder des données dans un format facilement lisible par des appareils mobiles, avec un niveau de correction d'erreur adaptable au besoin.
Le plus souvent, on les utilise pour transmettre l'URL d'un site, mais comme l'a montré le passe européen, on peut y intégrer bien plus d'informations. Il existe de nombreux services proposant de générer des codes QR simples ou plus complexes, de différentes tailles, avec ou sans personnalisation, mais aussi des librairies clé en main.
QRCode.show est l'un d'eux, avec une particularité : cet outil open source, développé en Rust, est accessible en ligne mais répond aussi à des requêtes HTTP effectuées via cURL. Il peut aussi être utilisé via l'adresse qrqr.show.
Générer un code QR en ligne de commande
Ainsi, pour générer un code QR renvoyant vers Next INpact il suffit de taper cette commande dans un terminal :
curl qrcode.show/https://www.nextinpact.com
ou
curl qrcode.show -d https://www.nextinpact.com
On peut également le faire sous la forme d'une commande « pipe » :
echo https://www.nextinpact.com | curl qrcode.show -d "@-"
Obtenir un code QR HTML, PNG, etc.
On peut exiger un résultat dans un format particulier. Il faut pour cela personnaliser le header de la requête :
curl qrcode.show -d https://www.nextinpact.com -H "Accept: image/png" --output qrcode.png
La commande ci-dessus génère une image PNG. On peut obtenir un fichier texte contenant le code QR sous la forme de caractères ou une page HTML avec le code QR et les instructions pour utiliser le service en-dessous :
curl qrcode.show -d https://www.nextinpact.com -H "Accept: text/plain" --output qrcode.txt
curl qrcode.show -d https://www.nextinpact.com -H "Accept: text/html" --output qrcode.html
Les formats reconnus sont les suivants :
application/octet-stream (par défaut)
text/plain
text/html
image/svg+xml
image/png
image/jpeg
Personnaliser la requête
D'autres paramètres permettent de retrouver les options classiques des codes QR. On peut par exemple modifier leur taille ou le niveau de compression. Par défaut il est faible (Low, L) mais peut être renforcé (M, Q, H) :
curl qrcode.show -d https://www.nextinpact.com -H "X-QR-Min-Width: 50" -H "X-QR-Min-Height: 50"
curl qrcode.show -d https://www.nextinpact.com -H "X-QR-EC-Level: H"
Il est également possible de modifier les couleurs (code hexadécimal) pour un rendu dans une page HTML :
curl qrcode.show -d https://www.nextinpact.com -H "X-QR-Dark-Color: e88228" -H "X-QR-Light-Color: 364358" -H "Accept: text/html" --output qrcode.html
La documentation détaille des scripts à intégrer dans Bash pour faciliter la création de codes QR via des commandes courtes. Le développeur indique travailler à l'ajout de paramètres, la personnalisation via un logo, le support des codes QR dynamiques, etc. Il dit également ne collecter aucune donnée personnelle.