Comment générer des codes QR en ligne de commandes

Ou dans des scripts
Internet 3 min
Comment générer des codes QR en ligne de commandes

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.

Vous n'avez pas encore de notification

Page d'accueil
Options d'affichage
Actualités
Abonné
Des thèmes sont disponibles :
Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !