【发布时间】:2015-06-05 14:55:52
【问题描述】:
我正在实现拍照功能,但遇到以下问题。
拍照后,我必须从原始图像中裁剪缩略图以制作头像图标。但是横向拍照就不好了。
步骤:
- 打开摄像头。
- 向右旋转 iPhone(使相机处于横向模式)。
- 拍照。
- 我得到了方向错误的 UIImage。因此,缩略图不好。
如何检测旋转 UIImage 的方向?
【问题讨论】:
标签: ios objective-c iphone uiimage
我正在实现拍照功能,但遇到以下问题。
拍照后,我必须从原始图像中裁剪缩略图以制作头像图标。但是横向拍照就不好了。
步骤:
如何检测旋转 UIImage 的方向?
【问题讨论】:
标签: ios objective-c iphone uiimage
使用这个:
#pragma mark - Image Picker Controller delegate methods
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
self.imageView.image = chosenImage;
switch (chosenImage.imageOrientation) {
case UIImageOrientationUp: //Left
break;
case UIImageOrientationDown: //Right
break;
case UIImageOrientationLeft: //Down
break;
case UIImageOrientationRight: //Up
break;
default:
break;
}
[picker dismissViewControllerAnimated:YES completion:NULL];
}
【讨论】:
UIImage 有一个size 属性。您可以使用它来查找image 的height 和width。
因此,如果height > width 那么image 是纵向的,否则是横向的
【讨论】:
UIImage 仅从相机或照片文件夹中获取图像数据,而不是方向详细信息。图像可以是 png、jpeg 或其他格式,它不知道图像的方向。所以没有办法找到图像是横向还是纵向
使用此代码获取设备的方向。 根据设备方向,您可以设置图像方向
[[UIDevice currentDevice] orientation]
【讨论】:
试试下面的代码
if (image.size.width > image.size.height ) // Landscape
{
}
else // Portrait
{
}
【讨论】: