обрезать изображение в круглой форме - PullRequest
1 голос
/ 19 января 2012

Я создаю приложение, в котором отображаю одно изображение .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];    

Пожалуйста, скажите мне обрезать часть изображения в круглую форму

Ответы [ 3 ]

3 голосов
/ 20 августа 2013

Вы можете сделать это, используя платформу Quartz Core, для этого действительно нужен какой-то крутой Apis.Проверьте этот RoundedImageView пример.

2 голосов
/ 19 января 2012

Метинкс, это дубликат.На этот вопрос есть отличный принятый ответ и ссылки на другие статьи: Как обрезать UIImage по овальной или круглой форме?

РЕДАКТИРОВАТЬ: Есть несколько простых способов сделать это,CALayer с угловым радиусом, являющимся очевидным.Но что еще более важно, существует метод CGImageCreateWithMask: он может применяться к более широкому спектру, вплоть до кругов и других фигур.Обратите внимание, что если ваше изображение в формате JPEG, то CGImageCreateWithMask вернет черный фон, поскольку у JPEG нет альфа-канала.

0 голосов
/ 01 марта 2017
        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];
    }

Для получения дополнительной информации проверьте это https://github.com/ruslanskorb/RSKImageCropper

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...