在Android中从字节数组写入EXIF数据

时间:2019-05-09 14:51:24

标签: java android exif

我正在用Java编写适用于Android的相机应用。遇到需要我从Exif数据获取定位信息的轮换问题后,我想知道是否可以添加自己的标签。

从版本24开始,我发现了SDK中提供的ExifInterface类。

我创建对象的方式:

ExifInterface exific = new ExifInterface(new ByteArrayInputStream(jpeg));

jpeg对象的类型为byte[],传递给Camera.PictureCallback的{​​{1}}回调。

根据the documentation,有一种方法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静默失败,因为仅输入流。 las,我看不到其他使用字节数组创建对象的方法。
  • 出于测试目的,我将尝试使用文件执行相同的操作,但是如果我操纵字节数组,我的应用程序的性质将更适合。

那么,有没有一种方法可以使用字节数组写入Exif数据?

0 个答案:

没有答案