FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
QR Code Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
QR Code Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
QR Code Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
QR Code Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
QR Code Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
QR Code Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
QR Code Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
QR Code Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
QR Code Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
QR Code Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
QR Code Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
QR Code Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
QR Code Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
QR Code Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
QR Code Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

 

 QR Code

Aller en bas 
3 participants
AuteurMessage
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

QR Code Empty
MessageSujet: QR Code   QR Code EmptyMer 1 Sep 2021 - 20:33

Dans le calme ambiant (c'est les vacances !)
Je ne connais pas grand chose aux QR codes, d'autres ici sont plus qualifiés que moi,
et ce qui suit est plutôt intuitif.

Je constate par expérience que les QR codes représentent un codage sous forme de bits 0 et 1, chaque bit
étant représenté par un carré noir si = 1, ou blanc si = 0, que le nombre de bits verticaux est égal au nombre
de bits horizontaux, d'où une image résultante carrée, et que ce nombre de bits est très variable suivant le QR code.
Par exemple pour le QRcode du pass sanitaire, pour moi il fait 81x81 bits, pour mon épouse 85x85 bits...

Quant au décodage d'un QR code, c'est le mystère.
J'ai récupéré sur internet un logiciel de lecture: 'Code Two QR Code Desktop Reader', le résultat est une chaîne de
caractère incompréhensible, il doit y avoir plusieurs méthodes de codage.
PS: Le texte d'un QR code généré par la fonction DLL de Klaus: 'GenerateQRCode' est bien restitué par le logiciel
ci-dessus, j'en déduis que certains QR codes sont cryptés (par exemple celui du pass sanitaire).

Juste par curiosité, ci-dessous une petite sub qui traite un fichier QR code (bmp) récupéré par exemple par copier/coller
depuis le pdf d'attestation de vaccination. L'image enregistrée se présente entourée d'un encadrement blanc.
La sub supprime cet encadrement, et compte le nombre de bits d'infos du QR code (vertical = horizontal), et enregistre
l'image résultante (sans bordures) dans une image bmp. On peut en paramètre dimensionner cette image à volonté).

En paramètres:
fq$ = image d'origine (issue du copier/coller), jpg ou bmp
fr$ = image bmp résultat
w1,h1 = redimensionnement de l'image finale, si w1 > 0
On récupère au retour la valeur nb% (définie avant l'appel) = nombre de bits d'infos horizontalement et verticalement.

Code:
SUB QRCode_Dim(fq$,fr$,w1,h1)
  ' Suppression de l'entourage blanc autour d'un QR Code fq$
  ' Résultat dans fr$ (bmp)
  ' Dimensions résultat w x h, nb de bits d'info nb% (largeur et hauteur)
  ' (***** variables w, h, nb% définis dans l'appelant *****)
  ' Si paramètre w1 <> 0: redimensionnement de l'image en w1 x h1 pixels.
  DIM_LOCAL fm$,n2,p,wi,hi,x,y,x1,y1,y2,wb,cx,cy
  fm$ = "Z:\Provy.bmp": ' fichier provisoire de manoeuvre, à ajuster
  n2 = NUMBER_2D_TARGET
  p = 900: PICTURE p: HIDE p: 2D_TARGET_IS p
  IMAGE p+1
  FILE_LOAD p,fq$: FILE_SAVE p,fm$
  FILEBIN_OPEN_READ 1,fm$
      FILEBIN_POSITION 1,18: wi = FILEBIN_READ(1)+256*FILEBIN_READ(1)
      FILEBIN_POSITION 1,22: hi = FILEBIN_READ(1)+256*FILEBIN_READ(1)
  FILEBIN_CLOSE 1: FILE_DELETE fm$
  x1 = -1
  FOR y = 0 TO hi-1
      FOR x = 0 TO wi-1
          IF COLOR_PIXEL_BLUE(p,x,y)<128 THEN x1 = x: EXIT_FOR
      NEXT x
      IF x1 > 0 THEN EXIT_FOR
  NEXT y
  x1 = x: y1 = y
  FOR y2 = hi-1 TO 0 STEP -1
      IF COLOR_PIXEL_BLUE(p,x1,y2)<128 THEN EXIT_FOR
  NEXT y2
  h = y2-y1+1: w = h
  2D_IMAGE_COPY p+1,x1,y1,x1+w,y1+h
  FILE_SAVE p+1,fr$
  FOR x = x1 TO w
      IF COLOR_PIXEL_BLUE(p,x,y1)>128 THEN EXIT_FOR
  NEXT x
  wb = (x-x1)/7: nb% = w/wb
  2D_TARGET_IS n2: DELETE p: DELETE p+1
  IF w1 > 0
      SCENE2D p: HIDE p: WIDTH p,w1: HEIGHT p,h1: COLOR p,0,0,0
      SPRITE p: SPRITE_FILE_LOAD p,fr$
      cx = w1/w: cy = h1/h: SPRITE_SCALE p,cx,cy
      SNAPSHOT p,fr$
      DELETE p
      w = w1: h = h1
  END_IF  
END_SUB

J'ai aussi une sub qui lit le fichier QR code et traduit les informations sous forme de 0 et 1 dans un fichier texte,
une ligne par rangée de bits, pour analyse éventuelle ultérieure (que je ne sais pas faire...).
On peut facilement reconstituer l'image QR code à partir de ce fichier texte.


Dernière édition par JL35 le Mer 1 Sep 2021 - 22:17, édité 1 fois
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

QR Code Empty
MessageSujet: Re: QR Code   QR Code EmptyMer 1 Sep 2021 - 21:07

Tant qu'à faire, la sub qui convertir l'image QR code (épurée comme ci-dessus, c'est à dire sans marges)
en fichier texte de données 0 et 1 représentant chaque bit d'information du QR code.
Quant à leur signification, c'est une autre paire de manches !

Code:
SUB QRCode_Tra(f$,nb,ft$)
  ' Traduction de l'image QR Code f$, de nb x nb bits d'info, sans marges,
  ' en un fichier texte ft$ de lignes de 0 et 1, nb lignes de nb valeurs 0/1
  DIM_LOCAL n2,fm$,p,wi,hi,cx,cy,w,h,x,y,i,j,a$,v$
  fm$ = "Z:\ImgQR.bmp": ' fichier provisoire de manoeuvre, à ajuster
  FILEBIN_OPEN_READ 1,f$: ' dimensions de l'image donnée
      FILEBIN_POSITION 1,18: wi = FILEBIN_READ(1)+256*FILEBIN_READ(1)
      FILEBIN_POSITION 1,22: hi = FILEBIN_READ(1)+256*FILEBIN_READ(1)
  FILEBIN_CLOSE 1  
  w = nb*10: h = w: ' image résultat =10 pixels par bit d'info
  ' 1) dimensionnement éventuel de l'image à 10 pixels par bit de données  
  IF wi <> w
      p=900: SCENE2D p: HIDE p: WIDTH p,w: HEIGHT p,h: COLOR p,0,0,0
      SPRITE p: SPRITE_FILE_LOAD p,f$
      cx = w/wi: cy = h/hi: SPRITE_SCALE p,cx,cy
      SNAPSHOT p,fm$
      DELETE p: f$ = fm$  
  END_IF
  ' 2) analyse de l'image résultante (1 bit = 10x10 pixels, =1 si noir, sinon 0)  
  p=900: PICTURE p: HIDE p: WIDTH p,w: HEIGHT p,h: FILE_LOAD p,f$
  n2 = NUMBER_2D_TARGET: 2D_TARGET_IS p  
  FILE_OPEN_WRITE 1,ft$
  FOR j = 0 TO nb-1
      y = j*10+5: a$ = ""
      FOR i = 0 TO nb-1
          x = i*10+5: v$ = "0"
          IF COLOR_PIXEL_RED(p,x,y)<128 THEN v$ = "1"
          a$ = a$+v$
      NEXT i
      FILE_WRITELN 1,a$
  NEXT j
  FILE_CLOSE 1
  2D_TARGET_IS n2: DELETE p
  IF FILE_EXISTS(fm$) = 1 THEN FILE_DELETE fm$
END_SUB

Concernant le QR Code, des infos assez complètes ici: https://fr.wikipedia.org/wiki/Code_QR
C'est pas simple, et je vais en rester là !
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

QR Code Empty
MessageSujet: Re: QR Code   QR Code EmptyJeu 2 Sep 2021 - 11:08

Bonjour JL35

Ca fait plaisir de voir qu'il y a encore quelques personnes présentes sur le forum ! Wink

Concernant le principe du QR-code il y a un fil de discussion avec des liens assez complets sur le sujet :

https://panoramic.1fr1.net/t6586-panoramic-et-qr-code?highlight=QR+CODE#79125
Je te conseille d'y jeter un œil.  geek
A bientôt.
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

QR Code Empty
MessageSujet: Re: QR Code   QR Code EmptyJeu 2 Sep 2021 - 14:09

Bonjour Minibug,

je connaissais ce fil de discussion (j'y suis même intervenu), je voulais simplement pouvoir décoder un QR Code,
c'est simple sous forme de bits 0 et 1, mais pour la signification du contenu c'est autre chose !
Je pense qu'en général ce contenu doit être codé et qu'il faut une clé pour le décoder, ça paraît normal.
Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

QR Code Empty
MessageSujet: Re: QR Code   QR Code EmptyJeu 2 Sep 2021 - 14:35

JL35 a écrit:
je connaissais ce fil de discussion (j'y suis même intervenu)

Ah oui pardon, je n'avais pas regardé toutes les interventions. Wink

Je pense surtout que le décodage ne se pratique pas d'une seule traite avec une lecture de haut en bas et de gauche a droite. Mais plutôt par zones. Comme il était indiqué dans un des liens...

Ces zones étant certainement traitées de façon indépendantes.

C'est ce qui explique qu'un simple décodage 'linéaire' ne donne pas le résultat escompté.
C'est effectivement plus complexe qu'un simple code barre ! Laughing

Yannick aime ce message

Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

QR Code Empty
MessageSujet: Re: QR Code   QR Code EmptyJeu 2 Sep 2021 - 16:22

Tu as raison, ça doit pouvoir se décoder assez facilement pour une génération en clair (comme la dll de klaus),
mais dans pas mal de cas les données doivent être cryptées, ce qui semble normal pour la sécurité,
et dans ce cas il faut avoir les outils adéquats.
Bon, j'en reste là, je voulais simplement décomposer en une liste les bits élémentaires de l'image,
et pouvoir recomposer l'image à partir de cette liste, ça c'est assez facile.
Quant à la signification du contenu, c'est autre chose !
Bonne journée à toi Minibug ! et profitons du beau soleil actuel !

Yannick aime ce message

Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

QR Code Empty
MessageSujet: Re: QR Code   QR Code EmptySam 4 Sep 2021 - 16:58

Bonjour à tous !

Sans entrer de trop dans les détails, un QR-code est décliné sous :

- Différents modes d’encodage ;
- Quarante versions ;
- Quatre niveaux de correction ;
- Huit masques.


1) Différents modes d’encodage.
Il sera choisi afin de réduire au maximum la taille de l’information à encoder et par voie de conséquence, la taille finale du QR-code.

- Le mode numérique : uniquement pour les chiffres décimaux de 0 à 10.
- Le mode alphanumérique : chiffres décimaux de 0 à 10, les lettres majuscules de A à Z et quelques symboles : « +  - /  *  :  .  $  % » + l'espace.
- Le mode octet : tous caractères de la table ASCII de 0 à 255.
- Le mode Kanji : les caractères sont codés sur 2 octets.

Dans un QR-code, différents modes d’encodage peuvent cohabiter. Chaque trame possède un entête indiquant le mode de codage utilisé ainsi que le nombre de caractères du message.


2) Quarante versions.
Elles déterminent la taille physique du QR-code.
Elles sont échelonnées, en x et en y, par un pas de 4 cellules.
La version à utiliser dépend de la taille de l’information qui composera le QR-code.

- La version 1 correspond à un QR-code de 17 x 17 cellules
- La version 2 , 25 x 25 cellules
- …
- La version 40 : 177 x 177 cellules.


3) Quatre niveaux de correction.
Lors de la création d’un QR-code, on choisit le niveau de correction que l’on souhaite. Il permet de corriger les erreurs dues à la lecture d’un QR-code altéré (rayé, abimé).
- Niveau L (Low) : permet de récupérer jusqu’à 7% de données ;
- Niveau M (Medium) : 15 % de données ;
- Niveau Q (Quality) : 25 % de données ;
- Niveau H (High) : 30 % de données.


4) Huit masques.
Lors de la finalisation du QR-code, avant de le dessiner, on va appliquer obligatoirement un des huit masques disponibles qui inversera la couleur de certaines cellules, afin de réduire au maximum les risques d’erreurs de lecture (artéfacts).


_____________________________________________________________________________________________________________________


Voilà pour un rapide survol du QR-code.
Je ne suis pas entré dans la partie complexe de l’encodage des données avec la génération des octets de correction d’erreur (Reed-Solomon), ni dans l'entrelacement des données dans certaines versions.

Pour lire un QR-code, il va falloir lire et décoder les zones réservées de l’image qui permettent de connaître le numéro du masque utilisé et le niveau de correction d’erreur. Dans un QR-code de version 7 ou supérieure, une autre zone est à lire pour connaître le version exacte entre 7 et 40.

Une fois le numéro de masque employé connu, il faut démasquer les données (redonner aux cellules leur bonne couleur) puis les lire et les décoder pour obtenir le texte en clair.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

QR Code Empty
MessageSujet: Re: QR Code   QR Code EmptySam 4 Sep 2021 - 17:41

Bonjour Marc,

Et un grand merci à toi pour ces précisions, ça au moins c'est de l'info précise.
Et ça me confirme bien qu'on ne peut pas décoder un QR code si on n'a pas les outils, et surtout
les renseignements nécessaires correspondant au type de codage.
Comme ici il avait été proposé des outils pour fabriquer un QR code, je m'étais dit que ayant plus souvent
l'occasion en tant qu'utilisateur lambda de lire un QR code que d'en fabriquer un ça serait intéressant
de le décoder, mais je vois bien que c'est quasiment impossible, avec toutes ces possibilités de codage.

En tout cas merci à toi, ça m'a éclairé sur bien des aspects.

Revenir en haut Aller en bas
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

QR Code Empty
MessageSujet: Re: QR Code   QR Code EmptySam 4 Sep 2021 - 17:51

Bonjour Marc !

Merci pour ces précisions.

Effectivement c'est complexe... et bien plus que ce que je pensais ! drunken
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Contenu sponsorisé





QR Code Empty
MessageSujet: Re: QR Code   QR Code Empty

Revenir en haut Aller en bas
 
QR Code
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Balises code /code du forum
» Dessiner un arc de cercle
» BUG QR Code DelphiZXingQRCode
» compresseur de code
» Editeur de code.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: