PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

XZing
Started by Philippe Pasquali, Mar., 22 2013 11:11 PM - 9 replies
Posted on March, 22 2013 - 11:11 PM
Bonjour,
Je recherche des informations pour utiliser XZing avec Windev17+Windev17Mobile. Cette lib en java permet le décodage de symbologies de code à barres contenus dans une image, autres que le QR-Code
Posted on March, 25 2013 - 11:13 PM
j'ai maintenant ce mini programme java d:\DecodageCodesBarres>DecodageCodesBarres.java qui fonctionne très bien en ligne de commande :
Compilation :
"C:\Program Files\Java\jdk1.7.0_17\bin\javac" -cp C:\Users\philippe.pasquali\Downloads\zxing-2.1\core\src;C:\Users\philippe.pasquali\Downloads\zxing-2.1\core\test\src\ DecodageCodesBarres.java
Puis
"C:\Program Files\Java\jdk1.7.0_17\bin\jar" -cvf DecodageCodesBarres.jar DecodageCodesBarres.class
Exécution
d:\DecodageCodesBarres>java -cp D:\DecodageCodesBarres;C:\Users\philippe.pasquali\Downloads\zxing-2.1\core\src;C:\Users\philippe.pasquali\Downloads\zxing-2.1\core\test\src\ DecodageCodesBarres d:\DecodageCodesBarres\cab\ean13.jpg
j’obtiens bien le contenu du code à barres contenu dans l'image...

PROGRAMME JAVA :
import com.google.zxing.BinaryBitmap;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.Reader;
import com.google.zxing.Result;
import com.google.zxing.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

public class DecodageCodesBarres
{
public static void main(String[] args)
{
System.out.println("\n Le contenu de l'image : "+args[0]+" est : "+DecodeCode(args[0]));
}

public static String DecodeCode(String sChemin)
{
String s;
try
{
Reader r = new MultiFormatReader();
BufferedImage bi = ImageIO.read(new File(sChemin));
LuminanceSource ls = new BufferedImageLuminanceSource(bi);
BinaryBitmap bb = new BinaryBitmap(new HybridBinarizer(ls));
s = r.decode(bb).getText();
} catch (Exception e) {
s = null;
}
return s;
}
}

Maintenant je cherches à appeler la fonction "DecodeCode" de la classe "DecodageCodesBarres" directement dans windev17
pour cela j'ai copié dans le répertoire de l'exe windev <DecodageCodesBarres.jar>

et tapé ces quelques lignes de windev pour tester :
FichiersJava, CheminFichier, BarcodeValue est une chaîne

FichiersJava = "DecodageCodesBarres.jar;core.jar"
IF NOT JavaCharge(FichiersJava) THEN
Erreur("Impossible de charger le(s) fichier(s) : "+FichiersJava)
RETOUR
END

WHEN EXCEPTION IN
CheminFichier = "C:\Mes projets\WMI\Exe\EAN.jpg"
BarcodeValue = JavaExécuteFonction("DecodageCodesBarres", "DecodeCode", javaChaîne, CheminFichier)
Info("["+BarcodeValue+"]")
DO
Trace(ExceptionInfo())
END

Résultat :
- JavaCharge : fonctionne
- JavaExécuteFonction : retourne l'exception, Impossible de trouver la classe Java <DecodageCodesBarres>.
je cherches des idées pour comprendre ce qui se passe...
Posted on March, 26 2013 - 4:15 PM
C'était ma partie Windev qui était mal codée !
FichiersJava, ClasseJava, FonctionJava, FichierImage, BarcodeValue sont des chaînes

FichiersJava = [
D:\DecodageCodesBarres
C:\Users\philippe.pasquali\Downloads\zxing-2.1\core\src
C:\Users\philippe.pasquali\Downloads\zxing-2.1\core\test\src
]
FichiersJava = Remplace(FichiersJava, RC, ";")
IF NOT JavaCharge(FichiersJava) THEN
Erreur("Impossible de charger le(s) fichier(s) : " + FichiersJava)
RETOUR
END

FichierImage = "d:\DecodageCodesBarres\cab\datamatrix_vert.jpg"
IF NOT fFichierExiste(FichierImage) THEN
Erreur(ChaîneConstruit("Fichier : %1, non trouvé !", FichierImage))
RETOUR
END

ClasseJava = "DecodageCodesBarres"
FonctionJava = "DecodeCode"
WHEN EXCEPTION IN
BarcodeValue = JavaExécuteFonction(ClasseJava, FonctionJava, javaChaîne, FichierImage)
Info("Code = " + BarcodeValue)
DO
Trace(ExceptionInfo())
END

et cela fonctionne
Registered member
505 messages
Popularité : +18 (18 votes)
Posted on March, 27 2013 - 11:06 AM
Bravo Philippe et merci pour ce partage intéressant.

:-)

--
Pour me contacter par courrier électronique, cliquez sur le lien ci-dessous (protection antispam): http://cerbermail.com/…
Registered member
1,287 messages
Popularité : +20 (72 votes)
Posted on April, 01 2013 - 6:33 PM
A suivre

--
Bertin CARRIERE
Consultant & Formateur
www.zen-project.be www.linkedin.com/in/bertincarriere

Belgique +32(0)2/318.02.67
France +33(0)3/66.722.542
Espagne +34(0)5/12.702.266

www.be-dev.be
Registered member
10 messages
Posted on April, 04 2014 - 9:47 AM
Bonjour,

J'ai essayé, j'ai téléchargé zxing mais lorsque je lance le code :
Impossible de trouver la classe Java <DecodageCodesBarres>.

As-tu un lien avec les bonnes sources que tu as utilisé ?

Merci

Patrice
Registered member
945 messages
Popularité : +102 (110 votes)
Posted on April, 05 2014 - 10:35 AM
Bonjour
DecodageCodesBarres.java est un programme JAVA qui n'est pas inclus dans ZXing :

import com.google.zxing.BinaryBitmap;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.Reader;
import com.google.zxing.Result;
import com.google.zxing.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

public class DecodageCodesBarres
{
public static void main(String[] args)
{
System.out.println("\n Le contenu de l'image : "+args[0]+" est : "+DecodeCode(args[0]));
}

public static String DecodeCode(String sChemin)
{
String s;
try
{
Reader r = new MultiFormatReader();
BufferedImage bi = ImageIO.read(new File(sChemin));
LuminanceSource ls = new BufferedImageLuminanceSource(bi);
BinaryBitmap bb = new BinaryBitmap(new HybridBinarizer(ls));
s = r.decode(bb).getText();
} catch (Exception e) {
s = null;
}
return s;
}
}
il faut le compiler (voir plus haut pour le compiler) pour pouvoir l'utliser
Posted on April, 05 2014 - 11:39 PM
Bonsoir,

Je viens d'essayer de compiler mais les erreurs suivantes apparaissent :

C:\travaux\java\java>"c:\Program Files\Java\jdk1.8.0\bin\javac.exe" -cp c:\trava
ux\java\exe;c:\travaux\java\src DecodageCodesBarres.java
DecodageCodesBarres.java:1: error: package com.google.zxing does not exist
import com.google.zxing.BinaryBitmap;
^
DecodageCodesBarres.java:2: error: package com.google.zxing does not exist
import com.google.zxing.LuminanceSource;
^
DecodageCodesBarres.java:3: error: package com.google.zxing does not exist
import com.google.zxing.MultiFormatReader;
^
DecodageCodesBarres.java:4: error: package com.google.zxing does not exist
import com.google.zxing.Reader;
^
DecodageCodesBarres.java:5: error: package com.google.zxing does not exist
import com.google.zxing.Result;
^
DecodageCodesBarres.java:6: error: package com.google.zxing does not exist
import com.google.zxing.BufferedImageLuminanceSource;
^
DecodageCodesBarres.java:7: error: package com.google.zxing.common does not exis
t
import com.google.zxing.common.HybridBinarizer;
^
DecodageCodesBarres.java:24: error: cannot find symbol
Reader r = new MultiFormatReader();
^
symbol: class Reader
location: class DecodageCodesBarres
DecodageCodesBarres.java:24: error: cannot find symbol
Reader r = new MultiFormatReader();
^

Que puis-je faire ?

Merci

Patrice
Registered member
945 messages
Popularité : +102 (110 votes)
Posted on April, 09 2014 - 1:05 PM
Bonjour
vous oubliez de mettre le chemin des sources de zxing au moment de la compilation aprés l'option -cp
Registered member
2 messages
Posted on January, 18 2017 - 11:26 PM
Bonjour,

Est-ce que vous pouvez m'expliquer comment vous avez fait pour ajouter le librairie et quel librairie java ZXing avez-vous utiliser.

Merci