Iphone 圆形裁剪图像
我正在创建一个应用程序,其中显示一个.jpg图像。我想裁剪成圆形的图像的一部分。请帮我解决这个问题Iphone 圆形裁剪图像,iphone,ios,image,ios4,uiimageview,Iphone,Ios,Image,Ios4,Uiimageview,我正在创建一个应用程序,其中显示一个.jpg图像。我想裁剪成圆形的图像的一部分。请帮我解决这个问题 image = [UIImage imageNamed:@"images2.jpg"]; imageView = [[UIImageView alloc] initWithImage:image]; CGSize size = [image size]; [imageView setFrame:CGRectMake(0, 0, size.width, size.height)]; [[self
image = [UIImage imageNamed:@"images2.jpg"];
imageView = [[UIImageView alloc] initWithImage:image];
CGSize size = [image size];
[imageView setFrame:CGRectMake(0, 0, size.width, size.height)];
[[self view] addSubview:imageView];
[imageView release];
请告诉我将图像的一部分裁剪成圆形我认为这是重复的。在这个问题上有一个很好的公认答案,还有其他文章的链接:
编辑:有几种简单的方法可以做到这一点。一个角半径明显的船艇。但更重要的是,存在CGImageCreateWithMask方法:该方法可应用于范围更广的圆和其他形状。请注意,如果您的图像是JPEG,则CGImageCreateWithMask将返回黑色背景,因为JPEG没有alpha通道。我认为这是重复的。在这个问题上有一个很好的公认答案,还有其他文章的链接:
编辑:有几种简单的方法可以做到这一点。一个角半径明显的船艇。但更重要的是,存在CGImageCreateWithMask方法:该方法可应用于范围更广的圆和其他形状。请注意,如果您的图像是JPEG,那么CGImageCreateWithMask将返回黑色背景,因为JPEG没有alpha通道。您可以使用Quartz Core framework来实现这一点,它确实有一些很酷的API来实现这一点。检查
RoundedImageView
示例。您可以通过使用Quartz Core框架来实现这一点。它确实有一些很酷的API来实现这一点。选中RoundedImageView
示例。您可以使用rskimagecrapper将图像裁剪为圆形。我实现了fallowing代码,在RSKImageCropper的帮助下将图像裁剪成圆形。
You can use RSKImageCropper for crop the image in circular shape. I am implemented the fallowing code to crop the image in circular shape with the help of RSKImageCropper.
1. Install the pod RSKImageCropper.
2. #import <RSKImageCropper/RSKImageCropper.h> in your viewcontroller
3. Add delegate to your interface i.e. RSKImageCropViewControllerDelegate
4. Implement the fallowing code in **didFinishPickingMediaWithInfo** delegate.
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *originalImage = [info objectForKey:UIImagePickerControllerOriginalImage];
[picker dismissViewControllerAnimated:YES completion:
^{
RSKImageCropViewController *imageCropVC = [[RSKImageCropViewController alloc] initWithImage:originalImage];
imageCropVC.avoidEmptySpaceAroundImage = YES;
imageCropVC.delegate = self;
[self presentViewController:imageCropVC animated:NO completion:nil];
}];
}
5. Now implement the delegate of RSKImageCropper.
- (void)imageCropViewControllerDidCancelCrop:(RSKImageCropViewController *)controller
{
[controller dismissViewControllerAnimated:NO completion:nil];
}
// The original image has been cropped.
- (void)imageCropViewController:(RSKImageCropViewController *)controller
didCropImage:(UIImage *)croppedImage
usingCropRect:(CGRect)cropRect
{
self.imgVIew.image = croppedImage;
[self.navigationController popViewControllerAnimated:YES];
}
// The original image has been cropped. Additionally provides a rotation angle used to produce image.
- (void)imageCropViewController:(RSKImageCropViewController *)controller
didCropImage:(UIImage *)croppedImage
usingCropRect:(CGRect)cropRect
rotationAngle:(CGFloat)rotationAngle
{
self.imgVIew.image = croppedImage;
[controller dismissViewControllerAnimated:NO completion:nil];
}
1.安装吊舱RSKIMAGECROPER。
2. #在viewcontroller中导入
3.将委托添加到界面,即RSKImageCropViewControllerDelegate
4.在**didFinishPickingMediaWithInfo**委托中实现休闲代码。
-(void)imagePickerController:(UIImagePickerController*)picker未使用信息完成PickingMediaWithInfo:(NSDictionary*)信息
{
UIImage*originalImage=[info objectForKey:UIImagePickerController原始图像];
[picker DismissionViewControllerInitiated:是完成:
^{
RSKImageCropViewController*imageCropVC=[[RSKImageCropViewController alloc]initWithImage:originalImage];
imageCropVC.avoidEmptySpaceAroundImage=是;
imageCropVC.delegate=self;
[self-presentViewController:imageCropVC动画:无完成:无];
}];
}
5.现在实现rskimagecrapper的委托。
-(无效)ImageCropViewController IDCancelCrop:(RSKImageCropViewController*)控制器
{
[控制器解除ViewControllerInitiated:未完成:无];
}
//原始图像已被裁剪。
-(无效)imageCropViewController:(RSKImageCropViewController*)控制器
didCropImage:(UIImage*)裁剪图像
使用cropRect:(CGRect)cropRect
{
self.imgVIew.image=裁剪图像;
[self.navigationController PopViewControllerInitiated:是];
}
//原始图像已被裁剪。此外,还提供用于生成图像的旋转角度。
-(无效)imageCropViewController:(RSKImageCropViewController*)控制器
didCropImage:(UIImage*)裁剪图像
使用cropRect:(CGRect)cropRect
旋转角度:(CGFloat)旋转角度
{
self.imgVIew.image=裁剪图像;
[控制器解除ViewControllerInitiated:未完成:无];
}
有关更多信息,请检查此,您可以使用rskimagecrapper将图像裁剪为圆形。我实现了fallowing代码,在RSKImageCropper的帮助下将图像裁剪成圆形。
1.安装吊舱RSKIMAGECROPER。
2. #在viewcontroller中导入
3.将委托添加到界面,即RSKImageCropViewControllerDelegate
4.在**didFinishPickingMediaWithInfo**委托中实现休闲代码。
-(void)imagePickerController:(UIImagePickerController*)picker未使用信息完成PickingMediaWithInfo:(NSDictionary*)信息
{
UIImage*originalImage=[info objectForKey:UIImagePickerController原始图像];
[picker DismissionViewControllerInitiated:是完成:
^{
RSKImageCropViewController*imageCropVC=[[RSKImageCropViewController alloc]initWithImage:originalImage];
imageCropVC.avoidEmptySpaceAroundImage=是;
imageCropVC.delegate=self;
[self-presentViewController:imageCropVC动画:无完成:无];
}];
}
5.现在实现rskimagecrapper的委托。
-(无效)ImageCropViewController IDCancelCrop:(RSKImageCropViewController*)控制器
{
[控制器解除ViewControllerInitiated:未完成:无];
}
//原始图像已被裁剪。
-(无效)imageCropViewController:(RSKImageCropViewController*)控制器
didCropImage:(UIImage*)裁剪图像
使用cropRect:(CGRect)cropRect
{
self.imgVIew.image=裁剪图像;
[self.navigationController PopViewControllerInitiated:是];
}
//原始图像已被裁剪。此外,还提供用于生成图像的旋转角度。
-(无效)imageCropViewController:(RSKImageCropViewController*)控制器
didCropImage:(UIImage*)裁剪图像
使用cropRect:(CGRect)cropRect
旋转角度:(CGFloat)旋转角度
{
self.imgVIew.image=裁剪图像;
[控制器解除ViewControllerInitiated:未完成:无];
}
欲了解更多信息,请点击