Hallo!
Ich habe hier tiffs, auf denen immer an verschiedenen Stellen ein Barcode drauf ist (mal QR, mal pdf417, mal datamatrix). Nun würde ich die gerne in Java auslesen. Dazu verwende ich die zxing Bibliothek. Das klappt aber nicht
Es klappt nur, wenn ich statt den tiffs irgendwelche Bilder von 2d-Barcodes verwende.
"Nicht klappen" heißt: der Text wird nicht ausgelesen, weil das BufferedImage kein Futter bekommt.
Ist zxing für das, was ich mache, gar nicht geeignet oder sollte das prinzipiell funktionieren?
Hier mal mein Code:
Die Bilder, die ich scannen will, sehen ungefähr so aus wie die beiden linken hier auf dem Bild:
http://www.maier-ols.de/typo3temp/pics/Muster_10A_b8d1a87fc7.jpg
Danke für Tipps und Hilfe!
Ich habe hier tiffs, auf denen immer an verschiedenen Stellen ein Barcode drauf ist (mal QR, mal pdf417, mal datamatrix). Nun würde ich die gerne in Java auslesen. Dazu verwende ich die zxing Bibliothek. Das klappt aber nicht
"Nicht klappen" heißt: der Text wird nicht ausgelesen, weil das BufferedImage kein Futter bekommt.
Ist zxing für das, was ich mache, gar nicht geeignet oder sollte das prinzipiell funktionieren?
Hier mal mein Code:
Code:
InputStream in = null;
BufferedImage bfi = null;
File[] files = new File("codes").listFiles();
for (int i = 0; i < files.length; i++) {
try {
in = new FileInputStream(files[i]);
bfi = ImageIO.read(in);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
if (bfi != null) {
LuminanceSource source = new BufferedImageLuminanceSource(
bfi);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(
source));
Reader reader = new MultiFormatReader();
Result result = null;
Hashtable<DecodeHintType, Object> decodeHints = new Hashtable<DecodeHintType, Object>();
decodeHints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);
try {
result = reader.decode(bitmap, decodeHints);
} catch (NotFoundException e) {
e.printStackTrace();
} catch (ChecksumException e) {
e.printStackTrace();
} catch (FormatException e) {
e.printStackTrace();
}
System.out.println("Text: " + result.getText());
} else {
System.out.println("Kein Buffered Image für "
+ files[i].getName());
}
}
Die Bilder, die ich scannen will, sehen ungefähr so aus wie die beiden linken hier auf dem Bild:
http://www.maier-ols.de/typo3temp/pics/Muster_10A_b8d1a87fc7.jpg
Danke für Tipps und Hilfe!
Zuletzt bearbeitet: