Iphone 圆形裁剪图像

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

我正在创建一个应用程序,其中显示一个.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 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:未完成:无];
}
欲了解更多信息,请点击