上传到 Firebase 时出现图片方向问题

Posted

技术标签:

【中文标题】上传到 Firebase 时出现图片方向问题【英文标题】:Picture orientation issue when uploading to Firebase 【发布时间】:2016-07-20 16:39:10 【问题描述】:

我允许用户从他们的照片库或使用他们的相机上传照片。

当用户从相机上传时会出现问题。即使照片是在纵向模式下拍摄的,图像也会逆时针旋转 90 度(逆时针)。

当我想在图像视图中显示图像时检查图像方向时,它说图像已经处于 .Up 位置,即使它明显地逆时针旋转了 90 度。

如何强制将相机中的图像以纵向上传?

照片库中的照片以正确的方向上传。如果相关的话,我也使用带压缩的 JPEG 表示。

【问题讨论】:

这个应该用EXIF信息解决...metapicz.com 你是如何解决这个问题的?我也有同样的问题 @LoganJahnke 好像刚刚自己解决了,因为我很久没遇到过问题了。 @LoganJahnke 在处理另一个项目时,我试图弄清楚为什么从 CoreData 获取图像时会旋转它们。事实证明,您需要将它们保存为 JPEG 而不是 PNG。 PNG 不会保存方向数据。 【参考方案1】:

使用 iPhone 的相机拍摄的所有图像都是横向的。 JPEG 的 exif 元数据中包含图像以纵向(顺时针或逆时针旋转)显示的事实。

图像查看器应用程序应该使用此信息并正确显示图像。并非所有观众都能正确做到这一点。

错误出现在查看者方面(在您的情况下可能是后端)。

如果您无法修复后端,解决方法是通过解压缩、绘制和重新压缩图像来创建新的直立图像。这需要时间、内存、电池和代码。

【讨论】:

我查看了我的后端,它似乎根本没有保存元数据,所以我可能必须想办法在上传图像时将元数据与图像一起带上 @davidtaubmann 是的,我想我使用了一个扩展来解决这个问题。 @TaylorSimpson okeeii...我们能知道是哪一个吗? @nikolai 有道理。我们如何解压缩、绘制、重新压缩?某处的示例代码?

以上是关于上传到 Firebase 时出现图片方向问题的主要内容,如果未能解决你的问题,请参考以下文章

Django/React/Firebase - 上传大文件时出现 CORS 错误

将文件上传到 Firebase 存储时出现身份验证错误

批量用户订阅 Firebase 中的主题时出现权限被拒绝错误

在 React Native 中将图像上传到 Firebase 存储时出现错误 400 Bad Request

从 iphone 设备上传图像时出现图像方向问题

上传图片到服务器时出现绿线