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

如果我下载照片并在“预览”(mac)或Photoshop(mac或pc)中查看它,则它再次处于纵向状态。在Windows Picture Viewer(pc)中,它已旋转为横向。

上传之前,我需要对图像数据应用旋转变换吗?然后,我还需要删除在Photoshop和Preview中旋转它的元数据吗?

最佳答案

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

  • 在服务器端应用旋转。我使用的是Ruby插件Paperclip(由Thoughtbot编写),只需要在模型中的has_attached_file命令中包含自动定向转换选项:

    has_attached_file:photo,:convert_options => {:all =>'-auto-orient'}
  • 在iPhone应用程序中旋转照片。这在另一个stackoverflow问题中得到了解决。感谢@Squeegy,调用scaleAndRotate method会将旋转元数据替换为图像变换。
  • 10-08 08:26
    查看更多