[英]How to crop image in iPhone?
在我的應用程序中,我使用以下代碼裁剪捕獲的圖像:-
-(void)imagePickerController:(UIImagePickerController *) picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
#ifdef _DEBUG
NSLog(@"frmSkinImage-imagePickerController-Start");
#endif
imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
//=======================================
UIImage *image =imageView.image;
CGRect cropRect = CGRectMake(100, 100, 125,128);
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], cropRect);
[imageView setImage:[UIImage imageWithCGImage:imageRef]];
CGImageRelease(imageRef);
//===================================================
//imgglobal = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
// for saving image to photo album
//UIImageWriteToSavedPhotosAlbum(imageView.image, self, @selector(image:didFinishSavingWithError:contextInfo:), self);
[picker dismissModalViewControllerAnimated:YES];
#ifdef _DEBUG
NSLog(@"frmSkinImage-imagePickerController-End");
#endif
}
但是我的問題是,當我使用相機拍攝照片以裁剪捕獲的圖像時,它會將圖像向右旋轉90度,並且如果使用照片庫,它可以完美地工作。
那么,您可以檢查一下我上面的代碼,看看我錯了嗎?
CGImage是沒有元數據的UIImage,因此會丟失方向信息。 我建議您獲取原始[UIImage imageOrientation]的方向,將其存儲,然后將其應用於最終圖像。
如果這不起作用,請嘗試應用CGAffineTransformMakeRotation(90.0*0.0174532925);
根據原始圖像的方向調整到最終圖像。
最快最簡單的方法是查看NYXImagesKit 。 使用UIImage+Resizing
類別,您可以裁剪圖像。 從文檔中:
UIImage +調整大小
此類別可用於裁剪或縮放圖像。
播種
您可以通過9種不同的方式裁剪圖像:
左上方頂部中心右上方左下方底部中心右下方左中心右中心中心
UIImage * cropped = [myImage cropToSize:(CGSize){width,height} usingMode:NYXCropModeCenter];
NYXCropMode是一種枚舉類型,可以在頭文件中找到,它用於表示上面的9種模式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.