设法设置setAttribute(ExifInterface.TAG_ORIENTATION,..)但不确定如何才能看到更改?

时间:2014-05-15 17:13:32

标签: java android android-layout layout

我的机器人

我的应用以纵向拍照。

在画廊中,我看到了确定

但是当保存到我的服务器时,我会看到它的风景。

(这只发生在Samsun S2上)

我看过它可能与exif标签有关。

我检查了我的图片文件并获得了

ORIENTATION_ROTATE_90

这是什么意思?

我尝试将其设置为ORIENTATION_NORAMLORIENTATION_UNDEFINED,但我不确定如何查看更改?

在照片库中,我只在横向上看到它 (无论是纵向还是横向拍摄)

我设法在我正确阅读新属性时设置属性。

但我如何看待变化?这应该有助于我原来的问题吗?

      ExifInterface exif;
        try {
          exif = new ExifInterface(imageFilename);
          int orientation =
              exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
          exif.setAttribute(ExifInterface.TAG_ORIENTATION,
              String.valueOf(ExifInterface.ORIENTATION_ROTATE_270));
//also tried ExifInterface.ORIENTATION_ROTATE_UNDEFINED)
          exif.saveAttributes();
          orientation =
              exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
          boolean b = orientation == Configuration.ORIENTATION_LANDSCAPE;

        } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }

我该如何解决这个问题?

为什么更改exif标签不够?如果更改exif标签什么都不做 - 为什么除了旋转之外我还需要更改它?

1 个答案:

答案 0 :(得分:0)

  

我的应用以纵向拍摄照片。在画廊中我看到它没问题但是当我保存到我的服务器时,我会看到它的风景。

这是因为您的服务器忽略了EXIF标头。

  

(这只发生在Samsun S2上)

它发生在许多多于此设备上。这是我在my CWAC-Camera library中为开发人员修补的众多内容之一。

  

我检查了我的图片文件并得到了ORIENTATION_ROTATE_90这是什么意思?

这是从相机到图像查看应用程序的消息,说“当你显示它时,它会旋转90度!kthxbye”

  

我尝试将其设置为ORIENTATION_NORAML或ORIENTATION_UNDEFINED,但我不确定如何查看更改?

所有这一切都会导致你的形象无处不在,如果你什么都不做的话。除了处理EXIF标记外,还需要旋转图像文件。