PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → WD26 - Lire un code DataMatrix ?
WD26 - Lire un code DataMatrix ?
Débuté par Der§en, 13 juil. 2021 16:19 - 11 réponses
Membre enregistré
331 messages
Posté le 13 juillet 2021 - 16:19
Bonjour,

Etes-vous arrivé a lire un code Datamatrix depuis une image avec Windev 26 ?

Je suis passé par un générateur de code Datamatrix (pour faire des tests) ou des codes glanées sur google, est tout les tests j'ai fait, ses sont soldé par un code d'erreur 47.

cb est un CodeBarres

cb = CBDécode(IMG_DataMatrix)

SI ErreurDétectée ALORS
LIB_Resultat = ErreurInfo(errComplet)
LIB_TypeCode = ""
LIB_TypeContenu = ""
SINON
LIB_Resultat = cb.Contenu
LIB_TypeCode = cb.TypeCodeBarres
LIB_TypeContenu = cb.TypeContenu
FIN


Avez-vous réussi a en lire des code DataMatrix ?

--
———————————————————————————————————
Ce qui se conçoit bien se code clairement et se débogue facilement...

- Pastiche d’une citation de Nicolas Boileau -
Membre enregistré
331 messages
Posté le 13 juillet 2021 - 16:20
Exemple de code qui renvoi l'erreur 47 :





--
———————————————————————————————————
Ce qui se conçoit bien se code clairement et se débogue facilement...

- Pastiche d’une citation de Nicolas Boileau -
Membre enregistré
4 223 messages
Posté le 14 juillet 2021 - 06:21
Bonjour,
Et elle dit quoi cette erreur ?

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
962 messages
Posté le 14 juillet 2021 - 18:18
hello,
en tout cas l'assemblage dotnet zxing dans windev sait lire ce genre de code.
Avec ce code :
// J.P Février 2021
// Lecture d'un code Barre à partir d'un fichier image en utilisant l'assemblage zxing
// Assemblage dotnet à utiliser dans son projet : Zxing (zxing.dll)
NewImage est un System.Drawing.Image dynamique = Image.FromFile("D:\temp\Images\DataMatrixCode.png")
DOTNET_PictureBox.Image = NewImage // DOTNET_PictureBox champ .Dotnet image
LectCode est un IBarcodeReader dynamique = allouer un BarcodeReader()
resultat est un ZXing.Result dynamique = LectCode:Decode(DOTNET_PictureBox.Image)
sTypeDecodage est une chaîne
sContenuCodeBarre est une chaîne
SI (resultat <> Null) ALORS
sTypeDecodage = resultat.BarcodeFormat.ToString()
sContenuCodeBarre = resultat.Text
SAI_Qrcode = "type : " + sTypeDecodage + CRLF + "================" + CRLF + sContenuCodeBarre
FIN


j'obtiens ceci :
type : DATA_MATRIX
================
LE SILENCE DES ANGNEAUX - HANNIBAL LECTER


--
Ami calmant, J.P
Membre enregistré
331 messages
Posté le 15 juillet 2021 - 09:47
Voici l’erreur complète que je reçois avec "CBDécode" sur le DataMatrix :





Sinon, je vient de tester ZXNG recommandé par Jurassik Pork, et effectivement, aucun PB de lecteur avec tout les code DataMatrix que je lui ai soumis :merci:

Petite question subsidiaire, car je découvre ZXING, peux-ton créer des DataMatrix aussi avec ?

--
———————————————————————————————————
Ce qui se conçoit bien se code clairement et se débogue facilement...

- Pastiche d’une citation de Nicolas Boileau -
Membre enregistré
962 messages
Posté le 15 juillet 2021 - 11:54
hello,
voici un exemple de code pour générer un code barre Data_Matrix :
// J.P Juillet 2021
// Génération d'un code Barre en utilisant l'assemblage dotnet zxing
MesOptions est un QrCodeEncodingOptions()
MesOptions.DisableECI = Vrai
MesOptions.CharacterSet = "UTF-8"
MesOptions.Width = 150
MesOptions.Height = 150
qr est un BarcodeWriter()
qr.Options = MesOptions
qr.Format = ZXing.BarcodeFormat.DATA_MATRIX
qrImage est un Bitmap dynamique = qr.Write("Test Jurassic Pork")
DOTNET_PictureBox.Image = qrImage
DOTNET_PictureBox.Image.Save("D:\temp\Images\MonDataMatrix.png")







--
Ami calmant, J.P
Membre enregistré
331 messages
Posté le 15 juillet 2021 - 14:02
Grand MERCI a toi Jurassic Pork :D

--
———————————————————————————————————
Ce qui se conçoit bien se code clairement et se débogue facilement...

- Pastiche d’une citation de Nicolas Boileau -
Membre enregistré
331 messages
Posté le 15 juillet 2021 - 14:06
Dernière petite question, d’où vient le "Bitmap dynamique", j'ai rien trouvé dans la doc PC SOFT ?

--
———————————————————————————————————
Ce qui se conçoit bien se code clairement et se débogue facilement...

- Pastiche d’une citation de Nicolas Boileau -
Membre enregistré
962 messages
Posté le 16 juillet 2021 - 09:23
hello,
Dergen a écrit :
> Dernière petite question, d’où vient le "Bitmap dynamique", j'ai rien trouvé dans la doc PC SOFT ?

C'est normal car Bitmap est une classe Dotnet (System.Drawing.Bitmap)

--
Ami calmant, J.P
Membre enregistré
331 messages
Posté le 17 juillet 2021 - 12:19
Merci pour le retour, hélas, je crois que je vais devoir revenir au « simple » code barre, car, le code demandé par mes utilisateurs dois pouvoir aussi être utilisé par de simple douchette et plus de smartphone !

--
———————————————————————————————————
Ce qui se conçoit bien se code clairement et se débogue facilement...

- Pastiche d’une citation de Nicolas Boileau -
Posté le 28 février 2022 - 19:02
Bonjour,

Pouvez-vous m'expliquer comment faire fonctionner zxing dans un projet windev SVP

J'ai essayé d'importer zxing.dll et l'assemblage .net System.Drawing mais je rencontre des erreurs sur votre code

BarcodeWriter est inconu ainsi que DOTNET_PictureBox.Image

// J.P Juillet 2021
// Génération d'un code Barre en utilisant l'assemblage dotnet zxing
MesOptions est un QrCodeEncodingOptions()
MesOptions.DisableECI = Vrai
MesOptions.CharacterSet = "UTF-8"
MesOptions.Width = 150
MesOptions.Height = 150
qr est un BarcodeWriter()
qr.Options = MesOptions
qr.Format = ZXing.BarcodeFormat.DATA_MATRIX
qrImage est un Bitmap dynamique = qr.Write("Test Jurassic Pork")
DOTNET_PictureBox.Image = qrImage
DOTNET_PictureBox.Image.Save("D:\temp\Images\MonDataMatrix.png")

Merci pour votre aide
Posté le 01 mars 2022 - 09:27
Bonjour,

Je teste désespérément cette exemple

J'ai rajouté un champ .NET 2.0
assemblage : Sysem.Drawing.dll
Classe .NET 2.0 : Systeme.Drawing.image

J'obtiens systématiquement une erreur sur DOTNET_PictureBox.Image = qrImage

Le champ DotNet2 n'a pu être créé.
L'erreur rencontrée lors de la création du champ est :
Le framework .NET a renvoyé l'erreur suivante :
Impossible de créer une instance de System.Drawing.Image, car il s'agit d'une classe abstraite.

Je ne trouve aucune solution, avez vous une idée SVP