[英]Android Image Orientation Issue on Motorola Droid
我们的应用使用图库选择操作从设备中抓取图像,然后上传到新的博客文章中。 我们在Moto Droid上看到,以纵向拍摄的图像将以横向方向发送回应用程序,因此图像是横向的。 AFAIK仅在Droid上发生。
通过Google找到了此图片,但我们需要以正确的方向上传完整尺寸的图片,因此该解决方案不适用于我们:
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'。
我认为这可能是带有EXIF标签的服务器代码中的错误。 如您所述,在带有2.1的Droid上,我以人像模式拍摄了一张照片,并调查了保存的结果(例如,通过电子邮件发送给自己)。 在“预览”中打开文件(在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元数据存储旋转信息(这是完全有效的),并且您的应用可能会丢弃此信息 。
希望有帮助! 随时发表评论或编辑原始问题以进一步解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.