目前,我试图对android中的图像执行相同的操作(OCR),一个选项是使用相机,另一个选项是从SD卡加载图像。当从代码所在的摄像机中提取代码时,该代码可以工作。
Bitmap bitmap = BitmapFactory.decodeFile(_path,options);其中_path等于使用应用程序( _path = DATA_PATH + "ocr.jpg"; )拍摄的最后一幅图像。但是,当我尝试使用从图库中选择的图像时,_path将等于,
imageCaptureUri = data.getData();
_path = imageCaptureUri.getPath();程序因错误而锁定。
故障删除结果ResultInfo{who=null,请求= 2,结果= -1,data=intent {dat=内容://media/external/image/media/26 typ=who=null/jpeg(已附加)}到活动{com.project.projectActivity}:java.lang.NullPointerException
如果有人知道发生了什么事,我想听听你的意见!!
发布于 2012-03-09 16:59:16
你可以得到图像的路径..。
_path = getPath(imageCaptureUri);
public String getPath(Uri uri) {
String[] projection = { MediaColumns.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
column_index = cursor
.getColumnIndexOrThrow(MediaColumns.DATA);
cursor.moveToFirst();
imagePath = cursor.getString(column_index);
return cursor.getString(column_index);
}然后
Bitmap bitmap = BitmapFactory.decodeFile(_path,options);备注:如果您正在裁剪图像,那么在这种情况下,图库将在您正在裁剪的图像目录上生成裁剪图像。
发布于 2012-03-09 16:55:56
图片库返回一个Uri来访问图像。
您需要使用来自BitmapFactory的BitmapFactory方法,为此您需要在给定的Uri上打开一个InputStream:
InputStream is = getContentResolver().openInputStream(imageCaptureUri);
Bitmap bitmap = BitmapFactory.decodeStream(is, options);https://stackoverflow.com/questions/9637836
复制相似问题