【发布时间】:2013-10-21 19:52:39
【问题描述】:
所以我有一个要裁剪的 UIImage。我查看并找到了 CIImage 的 imageByCroppingToRect 方法。因此,我将数据转换为 CIImage 而不是 UIImage,使用指定的方法对其进行裁剪,然后将生成的 CIImage 转换为 UIImage,然后将其显示在 UIImageView 中。
我的代码是
NSData *data = [[NSData alloc]initWithData:[def objectForKey:@"imageData"]];
//UIImage *normalImage = [[UIImage alloc]initWithData:data];
CIImage *originalImage = [CIImage imageWithData:data];
[originalImage imageByCroppingToRect:CGRectMake(10, 72, 300, 300)];
self.imageView.image = [UIImage imageWithCIImage:originalImage];
问题是图像被旋转了 90 度,我不确定它是否被裁剪。此图像是使用设备的相机捕获的。我使用 AVFoundation 来访问相机。我的会话预设是AVCaptureSessionPresetPhoto。我想这就是我得到缩放的原因。
【问题讨论】:
-
图像可能被旋转,因为图像处于另一个方向并使用 EXIF 标签翻转。某些图像格式(例如 JPEG)使用有损压缩。旋转并重新保存图像只是为了纠正方向会进一步压缩图像。因此图像本身被保留,但引入元数据表示“该图像应该旋转 90、180 或 270 度”。
标签: ios objective-c uiimage avfoundation ciimage