我正在裁剪UIImage并试图保持其方向。但是,当我使用其原始方向0时,新的UIImage旋转不正确。
//_picture is a UIImageView and .image gives the UIImage
NSLog(@"orientation ORIGINAL %i",_picture.image.imageOrientation); //logs out 0
CGRect rect = CGRectMake(0,0,300,300);
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef ref = [context createCGImage:_pictureFilterImage fromRect:rect];
_picture.image = [UIImage imageWithCGImage:ref scale:1.0 orientation:_picture.image.imageOrientation];
[_picture setFrame:rect];
NSLog(@"orientation is now %i",_picture.image.imageOrientation); //logs out 0 again
但是,如果我在3中用硬编码代替_picture.image.imageOrientation它会给我正确的方向(对于拍摄照片的具体方式,但如果用户以不同的方式握住他们的设备,显然不会工作)。
为什么这不能给我正确的形象?关于如何保留方向以及使用原始方向的原因的建议可能不起作用?
仅供参考:当我退出原始方向时,它给我一个0.当我在3中进行硬编码时,它当然会退出3但新图像现在的方向与以前相同。为什么需要从0到3来保持方向,我缺少什么?