在iOS开发中,遇到一个比较怪的问题,对读取出来的照片进行截取部分时。
使用的截取方法是比较常见的:
CGImageRef imageRef=CGImageCreateWithImageInRect([image CGImage],rect);
UIImage *newImage=[UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
但是实际使用中,发现在截取相机拍摄的图片时,有时候截取的部分不是我们所指定的区域,截取出来的部分似乎是图片被旋转后再截取出来的。
这个问题比较奇怪,通过仔细的对比排查,我发现原来图片其实有一个一直以来基本被忽略的属性:
@property(nonatomic,readonly) UIImageOrientation imageOrientation;
这个属性标记了图片的方向,而在实际使用时,通常我们使用UIImageView做图片显示时,并不用关心这个图片的方向,因为UIImageView继承自UIView的属性:
@property(nonatomic) CGAffineTransform transform;