Java 在Android中从字节数组写入EXIF数据
我正在用Java为Android编写一个摄像头应用程序。遇到需要我从Exif数据获取方向的旋转问题后,我想知道是否有办法添加我自己的标记 我找到了SDK中提供的Java 在Android中从字节数组写入EXIF数据,java,android,exif,Java,Android,Exif,我正在用Java为Android编写一个摄像头应用程序。遇到需要我从Exif数据获取方向的旋转问题后,我想知道是否有办法添加我自己的标记 我找到了SDK中提供的ExifInterface类,从版本24开始 我创建对象的方式: ExifInterface exific = new ExifInterface(new ByteArrayInputStream(jpeg)); jpeg对象属于传递给摄像机的byte[]类型。PictureCallback的onPictureTaken回调 根据,有一
ExifInterface
类,从版本24开始
我创建对象的方式:
ExifInterface exific = new ExifInterface(new ByteArrayInputStream(jpeg));
jpeg
对象属于传递给摄像机的byte[]
类型。PictureCallback
的onPictureTaken
回调
根据,有一种方法setAttribute
,我尝试以这种方式使用:
exific.setAttribute("MY_OWN_TAG", "somevalue");
我还尝试了提供的一个标签:
exific.setAttribute(ExifInterface.TAG_ARTIST, "myself");
之后(在另一种方法中),我尝试读取标记:
try{
ExifInterface exific = new ExifInterface(new ByteArrayInputStream(jpeg));
String rv = exific.getAttribute(tag);
Log.d(TAG, "Obtained value for tag " + tag + ": " + rv);
return rv;
} catch(IOException ioe){
Log.d(TAG, "Exif interface query failed.");
}
记录的值为空
我想到了几件事:
- 我想说的问题是,我正在使用
构造对象?在我看来,ByteArrayInputStream
似乎在默默地失败,因为流只是输入的。唉,我看不到使用字节数组创建对象的其他方法李>setAttribute
- 我将尝试使用一个文件做同样的事情,只是为了测试,但是如果我操作字节数组,我的应用程序的性质将更适合