Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中从字节数组写入EXIF数据_Java_Android_Exif - Fatal编程技术网

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

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回调 根据,有一

我正在用Java为Android编写一个摄像头应用程序。遇到需要我从Exif数据获取方向的旋转问题后,我想知道是否有办法添加我自己的标记

我找到了SDK中提供的
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
    似乎在默默地失败,因为流只是输入的。唉,我看不到使用字节数组创建对象的其他方法
  • 我将尝试使用一个文件做同样的事情,只是为了测试,但是如果我操作字节数组,我的应用程序的性质将更适合
那么,有没有一种方法可以使用字节数组写入Exif数据