ExifInterface_JNI:未检测到原始图像错误

时间:2017-03-21 14:50:14

标签: android

尝试获取ExifInterface时,我一直看到未检测到原始图像的错误消息。

ExifInterface exifInterface = new ExifInterface(filepath); 
int rotation=exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION,ExifInterface.ORIENTATION_UNDEFINED); 

有谁知道造成这种情况的原因是什么?

2 个答案:

答案 0 :(得分:3)

  

我从Uri获取它但我知道文件路径存在

这些陈述是相互矛盾的。 Uri不是文件如果 Uri的方案是file,那么然后就可以通过{{获得文件的文件系统路径1}}。如果方案是其他任何,例如getPath(),则无法获得文件系统路径,因为不需要存在文件。例如,content Uri并不意味着Android设备的文件位于http://stackoverflow.com/questions/42930509/exifinterface-jni-raw-image-not-detected-error

来自/questions/42930509/exifinterface-jni-raw-image-not-detected-error的{​​{1}}(例如,当前最新版本为25.3.0)具有a constructor that takes an InputStream。在ExifInterface上创建com.android.support:exifinterface(通过ContentResolver,例如getContentResolver()。在Context上致电Activity,提供openInputStream()(适用于ContentResolverUri计划)。将file传递给库的content构造函数。这同时确保您不会对用户造成安全问题避免担心获取您要检查的内容的文件系统路径。

答案 1 :(得分:0)

长话短说,请将以下示例应用于您的代码:

Uri uri = Uri.fromFile(f); 
// where f of type File 
in = context.getApplicationContext().getContentResolver().openInputStream(uri);
// context should refer to your context app
ExifInterface exifInterface = new ExifInterface(in);
// you'll need "exifInterface" 

不要忘记关闭输入流

in.close();