com.google.zxing.NotFoundException exception de base de java programme exécuté?
J'ai un fichier jpeg qui a du code à barres 2D. La résolution de l'Image est 1593X1212. Je suis à l'aide de xation de la bibliothèque pour décoder ce code-barres à partir d'une image. J'ai reçu de code suivant sur le net.
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.ChecksumException;
import com.google.zxing.FormatException;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.NotFoundException;
import com.google.zxing.Reader;
import com.google.zxing.Result;
import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
import com.google.zxing.common.HybridBinarizer;
public class NewLibTest {
public static void main(String args[]){
System.out.println(decode(new File("E:\\xyz.jpg")));
}
/**
* Decode method used to read image or barcode itself, and recognize the barcode,
* get the encoded contents and returns it.
* @param <DecodeHintType>
* @param file image that need to be read.
* @param config configuration used when reading the barcode.
* @return decoded results from barcode.
*/
public static String decode(File file){//, Map<DecodeHintType, Object> hints) throws Exception {
//check the required parameters
if (file == null || file.getName().trim().isEmpty())
throw new IllegalArgumentException("File not found, or invalid file name.");
BufferedImage image = null;
try {
image = ImageIO.read(file);
} catch (IOException ioe) {
try {
throw new Exception(ioe.getMessage());
} catch (Exception e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
}
if (image == null)
throw new IllegalArgumentException("Could not decode image.");
LuminanceSource source = new BufferedImageLuminanceSource(image);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
MultiFormatReader barcodeReader = new MultiFormatReader();
Result result;
String finalResult = null;
try {
//if (hints != null && ! hints.isEmpty())
// result = barcodeReader.decode(bitmap, hints);
//else
result = barcodeReader.decode(bitmap);
//setting results.
finalResult = String.valueOf(result.getText());
} catch (Exception e) {
e.printStackTrace();
// throw new BarcodeEngine().new BarcodeEngineException(e.getMessage());
}
return finalResult;
}
}
Quand j'ai exécuté ce simple programme java j'ai donné exception
com.google.zxing.NotFoundException
Ce n'est pas encore donne toute stackstrace.
Je veux demander aux experts pourquoi un tel type d'exception est à venir.
Grâce À Vous!
Avez-vous la solution de ce problème?Je suis face à un même problème..s'il vous plaît laissez-moi savoir
OriginalL'auteur Param-Ganak | 2012-05-14
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème. J'ai utilisé une image que je connaissais avaient un motif valable de QR code et j'ai aussi eu la com.google.zxing.NotFoundException.
Le problème est que l'image que vous utilisez comme source, c'est grand pour la bibliothèque de décodage. Après j'ai réduit la taille de mon image du QR code décodeur travaillé.
Pour le but de ma demande, le code QR sur l'image serait toujours plus ou moins dans le même domaine, j'ai donc utilisé le getSubimage fonction de la classe BufferedImage pour isoler le code QR.
OriginalL'auteur Stephan Bouwer
J'ai eu le même problème. Quand je courais presque exactement le même code sur le Java SE libs, il a travaillé. Lorsque j'exécute le code Android en utilisant la même image, il ne fonctionne pas. Passer des heures et des heures à essayer de trouver...
Vous pouvez mettre à l'Échelle une image bitmap à l'aide
Bitmap resize = Bitmap.createScaledBitmap(srcBitmap, dstWidth,dstHeight,false);
problème: Vous avez à tourner sur certains drapeaux. Jouer avec presque tous les drapeaux que cette solution a fonctionné pour moi:
...
problème: Android bibliothèque ZXing exécuter le code à barres de numérisation une fois, en supposant que le code à barres sur l'image a déjà le droit à l'orientation. Si ce n'est pas le cas, vous devez l'exécuter en quatre fois, à chaque fois que la rotation de l'image autour de 90 degrés!
Pour la rotation, vous pouvez utiliser cette méthode. L'Angle est l'angle en degrés.
OriginalL'auteur techgeek89
Que l'exception est levée lors de l'absence de code à barres est trouvé dans l'image:
http://zxing.org/w/docs/javadoc/com/google/zxing/NotFoundException.html
Avez-vous essayé d'utiliser le même code mais avec une autre image de code à barres? Existe-il des codes à barres images échantillons pour tester votre code contre?
Oui, j'ai changé l'image d'une ré-exécuté le programme encore il a été de donner la même exception
OriginalL'auteur Colin D
C'est normal; il signifie simplement pas de code-barres a été trouvé. Vous n'avez pas fourni l'image, donc je ne peux pas dire si votre image est encore lisible et, a fortiori, a pris en charge format de code-barres.
OriginalL'auteur Sean Owen
J'ai eu le même problème, j'ai été appeler un readQRCode(filePath, charset, hintMap); et a été faire passer le même message. J'ai été l'appel d'une bibliothèque que j'avais écrit à l'aide de la zxing bibliothèques. Pour corriger cela il suffit d'ajouter le (zxing) bocaux de votre haut niveau du code, même si les bibliothèques ne sont pas accessibles sur le site.
OriginalL'auteur user3680404
Déjà ce code si vous utilisez,
D'apporter des modifications de ce code. son conformly de travail,
OriginalL'auteur Dharma Raj
OriginalL'auteur kamini