来自UIImagePickerController方向问题的UIImage

时间:2012-10-25 17:39:28

标签: ios uiimageview uiimage uiimagepickercontroller

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

我注意到,在imageOrientation设置为UIImageOrientationRight的情况下,经常(总是?)提取的图像会回来。但是使用设备以纵向方向捕获图像。 为什么会这样?这是一部iPhone4S,iOS6,使用后置摄像头 - 因此分辨率为800万像素。

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

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

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

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

1 个答案:

答案 0 :(得分:0)

这与手机拍摄图像时的方向有关。手机不会旋转来自相机传感器的图像数据以使图像中的图像数量增加,而是设置imageOrientation,然后UIImage将负责以正确的方式呈现事物。

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

UIImage上有几个类别,可以在考虑imageOrientation的同时执行图像裁剪。

查看linklink