我正在开发一个具有OCR模块的Android应用程序,在花了一些时间找到API之后,我发现了一个来自互联网的API。我已经下载了他们的jar文件并在我的项目中导入了(com.asprise.ocr.Ocr)它。我的目的是使用该库从我的SD中的图像中提取信息并将其显示在我的Android应用程序上,但是当我运行该项目时,我得到以下错误:
Error:(137, 35) error: cannot access RenderedImage
class file for java.awt.image.RenderedImage not found
从日志中我发现错误来自我的代码脚本下面的行:
String s = ocr.recognize(new File[]{file}, Ocr.RECOGNIZE_TYPE_ALL, `Ocr.OUTPUT_FORMAT_PLAINTEXT);
`
这是我的android代码部分:
try {
Bitmap bitmap;
BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmap = BitmapFactory.decodeFile(f.getAbsolutePath(),
bitmapOptions);
viewImage.setImageBitmap(bitmap);
String path = android.os.Environment
.getExternalStorageDirectory()
+ File.separator
+ "Phoenix" + File.separator + "default";
f.delete();
OutputStream outFile = null;
File file = new File(path, String.valueOf(System.currentTimeMillis()) + ".jpg");
///////////////////////////////////////////
Ocr.setUp(); // one time setup
Ocr ocr = new Ocr(); // create a new OCR engine
ocr.startEngine("eng", Ocr.SPEED_FASTEST); // English
String s = ocr.recognize(new File[]{file}, Ocr.RECOGNIZE_TYPE_ALL, Ocr.OUTPUT_FORMAT_PLAINTEXT);
System.out.println("Result: " + s);
Toast.makeText(getBaseContext() ,"IMAGE INFORMATION: "+s ,Toast.LENGTH_SHORT).show();
// ocr more images here ...
ocr.stopEngine();
//////////////////////////////
try {
outFile = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 85, outFile);
outFile.flush();
outFile.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
任何人都可以帮助我解决如何从上面的Android代码脚本解决问题
答案 0 :(得分:1)
确定,
您知道标准Android API中没有java.awt.image.RenderedImage
类吗?
Android上的Java与常规PC上的Java不同,它没有所有相同的类和包,你知道吗?
因为并非所有的Java库都与Android开箱即用兼容。
如果您可以将java.awt.image.RenderedImage的源代码及其所有依赖项与常规java中的相同包名复制到您的应用程序中,那么您可以修复这些不可解决性错误。诀窍是将库所需的相同类添加到您的Android应用程序中,但是您可能需要编辑这些源以便与Android兼容,因此它可能比仅仅复制几个来源更多的工作。标准的“PC”java。
您可以尝试搜索专用的OCR for android。 或者,如果你坚持使用这个库,那么你需要自己动手。