摩托罗拉Droid上的Android图像定位问题

时间:2010-04-05 22:05:44

标签: android image orientation motorola

我们的应用使用图库选择操作从设备中抓取图像以上传到新的博文。我们在Moto Droid上看到,以肖像拍摄的图像正以横向方式发送回应用程序,因此图像是侧面的。 AFAIK只发生在Droid上。

通过谷歌发现这一点,但我们需要以正确的方向上传完整尺寸的图片,以便解决方案对我们无效:

http://groups.google.com/group/android-developers/browse_frm/thread/1246475fd4c3fdb6?pli=1

重现这一点的简单方法是在Droid上拍摄肖像,然后通过Gmail将其发送给自己。在电子邮件中,图像将处于横向(侧面)。我已经在droid 2.1更新上进行了测试,问题仍然存在。

以下是更多信息:

我看了一下photoshop中的图片信息,它有这一行:

<tiff:Orientation>1</tiff:Orientation>

此规范(http://www.awaresystems.be/imaging/tiff/tifftags/orientation.html)表示1的值为:

  

1 =第0行代表视觉效果   图像的顶部和第0列   代表视觉左侧。

在这种情况下,是不是不正确?在我的情况下,图像的顶部是右侧,第0行是左侧,我认为tiff方向的值应为'5'。

1 个答案:

答案 0 :(得分:2)

我认为这可能是使用EXIF标记的服务器代码中的错误。在我的Droid 2.1上,我正如你所提到的那样以纵向模式拍照,并调查了保存的结果(例如,通过电子邮件发送给我自己)。在预览(在Mac上)打开文件时,它看起来是正确的。

使用方便的exif工具(Mac上为port install exif),我可以打印EXIF信息:

$ exif -t Orientation image.jpg 
EXIF entry 'Orientation' (0x112, 'Orientation') exists in IFD '0':
Tag: 0x112 ('Orientation')
  Format: 3 ('Short')
  Components: 1
  Size: 2
  Value: right - top

现在,如果您要删除EXIF信息,这可能是您的服务器/客户端通信中发生的信息:

$ exif --ifd=0 --tag=Orientation --set-value= -o image2.jpg image.jpg 
Wrote file 'image2.jpg'.

$ exif -t Orientation image2.jpg 
EXIF entry 'Orientation' (0x112, 'Orientation') exists in IFD '0':
Tag: 0x112 ('Orientation')
  Format: 3 ('Short')
  Components: 1
  Size: 2
  Value: 

生成的图像将处于横向模式。

所以,最重要的是我认为Droid始终将图像中的位存储在横向中并依赖EXIF元数据来存储旋转信息(这完全有效),并且您的应用可能会丢弃此信息

希望有所帮助!随意评论或编辑原始问题以进一步排除故障。