Voir le flux RSS

Astuces Dev Oracle

Générer un QR Code en PL/SQL

Noter ce billet
par
McM
, 07/09/2020 à 16h35 (148 Affichages)
Voici une procédure qui permet de générer un QR Code en PL/SQL.
Je me suis basé sur le site http://www.thonky.com/qr-code-tutorial qui détaille très bien toutes les étapes de calculs et de placement.

En entrée de procédure : Le texte, et en option, la qualité (défaut Q), et un mask pattern (pour le mode débug)
En sortie, on retourne un tableau de ligne (4000 caractères) contenant les 1 (case noire) et 0 (case blanche), ainsi que la hauteur et largeur de l'image à générer

Je me base sur mon package de gestion d'image (amélioré depuis mon blog précédent avec une gestion du format png et un nouveau paramètre d'inversion noir/blanc)

Voici le package d'image et la procédure de génération de QRCode : QRCODE.zip

Exemples d'utilisation :
Création d'un QRCODE dans la table WTT_UPLOAD (id=151) en PNG
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
DECLARE
  v_image IMAGE_PKG.LIGNE_DATA;
  v_larg NUMBER;
  v_haut NUMBER;
BEGIN
 	P_QRCODE (p_chaine => 'CECI EST MON QRCODE', p_quality => 'Q', p_image => v_image, p_largeur => v_larg, p_hauteur => v_haut);
  IMAGE_PKG.CREATION_FICHIER_IMAGE (p_data => v_image, p_largeur => v_larg, p_hauteur => v_haut, p_typeImg => 'PNG', p_IDWTT => 151, p_Nbcoul => 2, p_negatif => 'O');
END;

Génération d'un QRCode dans un BLOB (en inversant le noir et le blanc)
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
DECLARE
  v_image IMAGE_PKG.LIGNE_DATA;
  v_larg NUMBER;
  v_haut NUMBER;
  v_lob BLOB;
BEGIN
 	P_QRCODE (p_chaine => 'CECI EST MON QRCODE', p_quality => 'Q', p_image => v_image, p_largeur => v_larg, p_hauteur => v_haut);
  v_lob := IMAGE_PKG.CREATION_BMP(p_data => v_image, p_largeur => v_larg, p_hauteur => v_haut, p_Nbcoul => 2, p_negatif => 'O');
END;

Création d'un BMP en damier de 2x2 dans un BLOB
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
DECLARE
  v_lob BLOB;
  v_image IMAGE_PKG.LIGNE_DATA;
  v_larg NUMBER := 2;
  v_haut NUMBER := 2;
BEGIN
  v_image(0) := '01';
  v_image(1) := '10';
  v_lob := IMAGE_PKG.CREATION_BMP(p_data => v_image, p_largeur => v_larg, p_hauteur => v_haut, p_Nbcoul => 2);
END;

Envoyer le billet « Générer un QR Code en PL/SQL » dans le blog Viadeo Envoyer le billet « Générer un QR Code en PL/SQL » dans le blog Twitter Envoyer le billet « Générer un QR Code en PL/SQL » dans le blog Google Envoyer le billet « Générer un QR Code en PL/SQL » dans le blog Facebook Envoyer le billet « Générer un QR Code en PL/SQL » dans le blog Digg Envoyer le billet « Générer un QR Code en PL/SQL » dans le blog Delicious Envoyer le billet « Générer un QR Code en PL/SQL » dans le blog MySpace Envoyer le billet « Générer un QR Code en PL/SQL » dans le blog Yahoo

Catégories
Programmation

Commentaires