如何在iPhone中裁剪图像?
问题描述:
在我的应用我为使用如下代码裁剪所拍摄的图像: -如何在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 *裁剪= [myImage cropToSize:(CGSize){width,height} usingMode:NYXCropModeCenter];
NYXCropMode是一个枚举类型,可以在头文件中找到,它使用 来表示上面的9种模式。