iPhone 相机图像上传到网络时会旋转

标签 iphone uiimagepickercontroller image-uploading

我正在使用 UIImagePickerController 在 iPhone 上以肖像模式拍摄照片并将其保存到网络上。照片在手机上以纵向显示,但在网络上旋转 90 度。

如果我下载照片并在预览 (Mac) 或 Photoshop(Mac 或 PC)中查看它,它会再次处于纵向状态。在 Windows 图片查看器 (pc) 中,它会旋转为横向。

上传之前我需要对图像数据应用旋转变换吗?那么我是否还需要删除在 Photoshop 和预览中旋转它的元数据?

最佳答案

问题在于图像旋转被添加到照片中,作为大多数浏览器不使用的 EXIF 数据。解决办法有两种:

  1. 在服务器端应用轮换。我使用的是 Ruby 插件 Paperclip(由 Thoughtbot 提供),只需将自动定向转换选项包含到模型中的 has_attached_file 命令中即可:

    has_attached_file :photo, :convert_options => { :all => '-auto-orient' }

  2. 在 iPhone 应用程序中旋转照片。这在另一个 stackoverflow 问题中得到了解决;调用scaleAndRotate method感谢@Squeegy,用图像变换替换了旋转元数据。

关于iPhone 相机图像上传到网络时会旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1041884/

相关文章:

ios - 像在 iMessage 中一样在 Uitextview 中添加 UIImageview

iphone - iOS 将照片保存在应用特定的相册中

iphone - 使用 coredata 存储/缓存非标准数据类型

ios - 如何从 didFinishPickingMediaWithInfo 返回 NSString 或 NSUrl?

ios - 从弹出窗口打开全屏模式时,相机的屏幕位置不正确

php - 如何使用PHP代码将图片上传到MySQL数据库

iphone - 图表中游戏速度值的近似值

ios - 无法将字符串转换为日期

ruby-on-rails - 未初始化的常量 ImageUploader::CarrierWaveDirect

node.js - 如何使用 NodeJS、Nginx 和 base64 上传图像? (413有效负载太大错误: request entity too large)