摩托罗拉 Droid 上的 Android 图像方向问题

标签 android image orientation motorola

我们的应用程序使用图库选择操作从设备中抓取图像以上传到新的博客文章。我们在 Moto Droid 上看到,纵向拍摄的图像以横向发送回应用程序,因此图像是横向的。据我所知,这只发生在 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 = The 0th row represents the visual top of the image, and the 0th column represents the visual left-hand side.

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

最佳答案

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

使用方便的 exif 工具(port install exif 在 Mac 上),我能够打印 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 元数据来存储旋转信息(这是完全有效的),而您的应用可能会丢弃此信息.

希望对您有所帮助!请随意评论或编辑原始问题以进一步解决问题。

关于摩托罗拉 Droid 上的 Android 图像方向问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2581471/

相关文章:

java - Android媒体录制错误启动失败-19 runTimeException

html - 在html中导入图像时出现灰色框

Android 设备方向是横向,但传感器的行为类似于方向是纵向

swift - 如何在 SwiftUI 中以编程方式设置 UI 界面方向

android - 如何在 void 方法上做 doNothing()?

android - 如何使用 Gradle 文件从 Android Google Source 下载源代码

java - Android JsonObject 错误 org.json.JSONException : No value

python-3.x - PIL.ImageEnhance 增强颜色、亮度和对比度功能的公式是什么?

java - 导出可运行 jar 中的图像不起作用

ios - 如何获取 iPhone 和 iPad 中纵向和横向的键盘高度