我们的应用使用图库选择操作从设备中抓取图像以上传到新的博文。我们在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'。
答案 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元数据来存储旋转信息(这完全有效),并且您的应用可能会丢弃此信息强>
希望有所帮助!随意评论或编辑原始问题以进一步排除故障。