所以我有一個UIImage,我想裁剪。我查找並發現了針對CIImage的imageByCroppingToRect
方法。所以,我將數據轉換爲CIImage而不是UIImage,使用指定的方法裁剪它,然後將生成的CIImage轉換爲UIImage,然後將其顯示在UIImageView中。將UIImage轉換爲CIImage以裁剪爲CGRect。 AVFoundation
我的代碼是
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度」。 – Jesper