0

UIImagePickerController用来从用户的照片库中获取图像和/或用相机拍摄。效果很好。

我注意到获取的图像通常(总是?)返回它们的imageOrientation设置为UIImageOrientationRight. 但是该图像是使用设备纵向拍摄的。 为什么是这样? 这是一个 iPhone4S,iOS6,使用后置摄像头 - 所以分辨率是 8MP。

在模拟器中,从照片库中抓取照片,图像返回UIImageOrientationUp

当我以UIImageView方向看起来正确(纵向/向上)显示图像时。但是当我去裁剪图像时,坐标系并不是我所期望的。0,0 在图像的右上角,我猜它在报告时是有道理的UIImageOrientationRight

我正在寻找对正在发生的事情的解释以及处理奇数坐标系的正确方法。

编辑:在我看来,至少在 iPhone4S 上,相机总是拍摄 UIImageOrientationRight/“风景”图像,并且 UIImageView 尊重显示的 imageOrientation。但是,如果我使用 UIImagePNGRepresentation 保存图像,则不会保留方向(我想我在某处读到过这个。)

4

1 回答 1

0

这与拍摄图像时手机所处的方向有关。手机不会旋转来自相机传感器的图像数据来弥补图像,而是设置 imageOrientation,然后 UIImage 将负责以正确的方式渲染事物。

当您尝试裁剪时,您通常会将图像更改为 CGImage 并且会丢失方向信息,所以突然间您会获得具有奇怪方向的图像。

您可以获得 UIImage 上的几个类别,这些类别将在考虑 imageOrientation 的同时执行图像裁剪。

看看链接链接

于 2012-10-25T17:53:19.110 回答