Créer un QR Code personnalisé (gratuit avec logo au centre)

Récemment on m'a demandé de créer un QR Code personnalisé pour un mariage, le but étant de l'imprimer dans un livret de mariage, pour l'événement qui se déroulera en 2027. J'ai cherché sur le net un site permettant de créer un QR Code avec logo personnalisé. J'ai bien trouvé des services pour faire cela, mais je me suis confronté à chaque fois au même problème : les codes n'étaient valables que quelques jours et ensuite il fallait payer un abonnement... Je me suis donc mis en quête d'une autre solution : créer moi-même le QR Code. Dans ce tutoriel, je vais donc vous expliquer comment créer un QR Code personnalisé avec un logo au centre en utilisant Python. Cette méthode fonctionne tout aussi bien pour une carte de visite, un flyer, une affiche, un site Internet ou tout autre projet.

QR Code personnalisé, créé gratuitement avec Python
QR Code personnalisé, créé gratuitement avec Python

Pourquoi créer un QR Code personnalisé ?

L'objectif est simple : générer un QR Code personnalisé qui pointe vers une URL de notre choix, tout en ayant la possibilité d'ajouter un logo au centre. L'avantage de cette méthode est que le QR Code généré est un QR Code statique : il ne dépend d'aucun service en ligne, d'aucun abonnement et restera fonctionnel tant que l'adresse indiquée reste accessible.

Ce tutoriel a été réalisé sous Linux, mais la procédure est également réalisable sous Windows avec Python.

Pre-requis

Pour réaliser un QR Code personnalisé, nous avons besoin des éléments suivants :

  • Python 3
  • La bibliothèque Python qrcode
  • La bibliothèque Python pillow

Si Python n'est pas encore installé sur votre machine, vous pouvez le télécharger depuis le site officiel de Python.

Sous Linux Debian/Ubuntu, il est possible de vérifier la présence de Python, dans un terminal, avec :

python3 --version
La commande 'python3 --version' permet de vérifier la version de python installée
La commande 'python3 --version' permet de vérifier la version de python installée

Créer un environnement virtuel Python

Sur les distributions Linux récentes, l'installation directe de bibliothèques Python avec pip peut être bloquée afin de ne pas modifier les paquets système. On va donc créer un environnement virtuel dédié à notre projet.

Commençons par installer le module nécessaire. Ouvrez un terminal et exécutez la commande suivante :

sudo apt install python3-venv

Créez ensuite un dossier pour le projet. Pour ce tutoriel, je vais générer un QR Code pour justegeek.fr. Je vais donc créer un dossier nommé 'justegeek'. A vous d'adapter.

mkdir justegeek 
cd justegeek

Créez ensuite l'environnement virtuel avec la commande suivante :

python3 -m venv .venv

Puis activez le.

source .venv/bin/activate

Si tout est correct, votre terminal affichera maintenant quelque chose comme :

(.venv) steven@stdkl01:~/justegeek$
Utilisation d'un environnement virtuel Python
Utilisation d'un environnement virtuel Python

Installation des bibliothèques nécessaires

Comme évoqué dans le paragraphe sur les pré-requis, python ne se suffit pas à lui-même et nous avons besoin ici de deux bibliothèques additionnelles : qrcode et Pillow. La bibliothèque qrcode permet de générer le QR Code tandis que Pillow sera utilisée pour manipuler l'image et ajouter le logo. Pour les installer, entrez simplement ceci dans votre terminal :

pip install qrcode[pil]
Installer les librairies qrcode et pillow pour python3
Installer les librairies qrcode et pillow pour python3

Préparation des fichiers

Dans notre dossier, nous allons créer l'organisation suivante :

justegeek/ 
├── .venv/
├── qr_generator.py
└── logo_justegeek.png

Le dossier .venv a été créé lors de la création de l'environnement python, le script qr_generator.py va être créé dans la prochaine étape de ce tutoriel, et le fichier logo_justegeek.png correspond au logo que je souhaite placer au centre du QR Code personnalisé.

Au passage, pour obtenir un meilleur résultat, privilégiez un logo avec un fond transparent.

Création du script python

On va maintenant créer un script python qui va s'occuper de générer le QR Code. Créez donc un fichier, en le nommant par exemple qr_generator.py et coller le contenu ci-dessous dedans :

import qrcode
from PIL import Image

url = "https://www.justegeek.fr"

# Génération du QR
qr = qrcode.QRCode(
    version=5,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=20,
    border=4,
)

qr.add_data(url)
qr.make(fit=True)

img_qr = qr.make_image(
    fill_color="black",
    back_color="white"
).convert("RGB")

# Chargement du logo
logo = Image.open("logo_justegeek.png").convert("RGBA")

# Taille du logo (environ 20% du QR)
qr_width, qr_height = img_qr.size
logo_size = qr_width // 5

logo.thumbnail((logo_size, logo_size))

# Ajout d'un fond blanc derrière le logo
pos = (
    (qr_width - logo.size[0]) // 2,
    (qr_height - logo.size[1]) // 2
)

fond = Image.new("RGBA", logo.size, "white")
img_qr.paste(fond, pos, fond)

# Collage du logo
img_qr.paste(logo, pos, logo)

# Sauvegarde haute qualité
img_qr.save("QR_justegeek.png")

Pensez ensuite à modifier l'URL du QR Code, le nom et chemin du logo et le nom du fichier QR Code généré. Il s'agit des trois lignes :

url = "https://www.justegeek.fr"

Image.open("logo_justegeek.png").convert("RGBA")

img_qr.save("QR_justegeek.png")

Génération du QR Code personnalisé

Tout est prêt. Il ne reste qu'à lancer le script et laisser la magie (enfin Python) opérer ! Pour lancer le script, entrez simplement la commande ci-dessous dans votre terminal :

python qr_generator.py

L'opération ne prend que quelques secondes et le QR Code est généré dans le dossier du script.

Exécuter simplement le script pour générer le QR Code dans le même dossier
Exécuter simplement le script pour générer le QR Code dans le même dossier

Quelques conseils pour l'impression de votre QR Code personalisé

Si votre QR Code personnalisé est destiné à être imprimé, notamment dans un livre ou une affiche, voici quelques conseils à suivre afin d'obtenir les meilleurs résultats :

  • Utilisez une taille suffisante (au moins quelques centimètres)
  • Gardez un contraste important entre le QR Code et le fond
  • Évitez de placer un logo trop grand au centre
  • Privilégiez une correction d'erreur élevée (ERROR_CORRECT_H)
  • Testez le QR Code après impression avec plusieurs smartphones.

Et voilà, tuto terminé ! Pour vous faire gagner du temps, vous pouvez télécharger directement le script utilisé dans ce tutoriel puis remplacer simplement l'URL et votre logo. En espérant que cela puisse servir à certains d'entre vous.

Sandstorm

Ingénieur Systèmes passionné d'informatique et de High-Tech, Sandstorm a créé JusteGeek.fr en 2013. Il aime les geekeries en tout genre. "Si un produit s'allume c'est un bon point. S'il est connecté, c'est encore mieux !"

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.