ZXing 2.1 ライブラリで成功を収めようとしています。Mac OS X 10.7.5 で Java 1.6 を使用しています。テキストをエンコードできますが、画像をデコードできません。むしろ、私が得るのは の 1 行のスタック トレースだけですcom.google.zxing.NotFoundException
。
これは簡単に思えますが、何が間違っているのかわかりません。再現するための簡単なテストを次に示します。いくつかのバーコードを画像にエンコードし、メモリから画像をデコードします。
public class App {
public static void main(String[] args) {
// Try UPC-A.
try {
testEncodeDecode(BarcodeFormat.UPC_A, "012345678905"); // Valid UPC-A.
} catch (Exception e) {
e.printStackTrace();
}
// Try EAN-13.
try {
testEncodeDecode(BarcodeFormat.EAN_13, "9310779300005"); // Valid EAN-13.
} catch (Exception e) {
e.printStackTrace();
}
}
public static void testEncodeDecode(BarcodeFormat barcodeFormat, String text)
throws WriterException, NotFoundException, ChecksumException, FormatException, IOException {
// Size of buffered image.
int width = 200;
int height = 100;
// Encode to buffered image.
Writer writer = new MultiFormatWriter();
BitMatrix bitMatrix = writer.encode(text, barcodeFormat, width, height);
BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bitMatrix);
// Write to disk for debugging.
String formatName = "png";
File outputFile = new File(text + "." + formatName);
ImageIO.write(bufferedImage, formatName, outputFile);
// Decode from buffered image.
LuminanceSource source = new BufferedImageLuminanceSource(bufferedImage);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
Reader reader = new MultiFormatReader();
Result result = reader.decode(bitmap);
// Never gets this far!
System.out.println("result=" + result.getText());
}
}
出力は単に
com.google.zxing.NotFoundException
com.google.zxing.NotFoundException
私は困惑しています!ご協力いただきありがとうございます。参考までに出力画像を添付します。
UPC-A EAN-13