我有一個帶有二維條形碼的jpeg文件。圖像分辨率是1593X1212。我正在使用xing庫從圖像解碼這個條形碼。我在網上得到了以下代碼。當執行核心Java程序時,com.google.zxing.NotFoundException異常會出現嗎?
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;
}
}
當我執行我定異常
com.google.zxing.NotFoundException
它甚至沒有提供任何stackstrace這個簡單的核心Java程序。
我想問問專家,爲什麼會出現這種例外。 謝謝你!
你有這個問題的解決方案?我面臨同樣的問題。請讓我知道 –