How to get UIBezierPath forms in UIImage or crop UIImage in specific form

I'm new to iOS, I want to know if I can get UIBezierPathto UIImage. I have UIImagea face layout and want to get UIBezierPathwhat helps me crop UIImage. Or, can someone tell me about other ways to trim UIImages ?, but make sure that the trim is in a custom shape (for example: face, heart, etc.), and not in a rectangle.

+4
source share
1 answer

Here is the code to hide the image with the image :

- (UIImage *)cerateImageFromImage:(UIImage *)image
                    withMaskImage:(UIImage *)mask {
    CGImageRef imageRef = image.CGImage;
    CGImageRef maskRef = mask.CGImage;

    CGImageRef imageMask = CGImageMaskCreate(CGImageGetWidth(maskRef),
                                             CGImageGetHeight(maskRef),
                                             CGImageGetBitsPerComponent(maskRef),
                                             CGImageGetBitsPerPixel(maskRef),
                                             CGImageGetBytesPerRow(maskRef),
                                             CGImageGetDataProvider(maskRef),
                                             NULL,
                                             YES);

    CGImageRef maskedReference = CGImageCreateWithMask(imageRef, imageMask);
    CGImageRelease(imageMask);

    UIImage *maskedImage = [UIImage imageWithCGImage:maskedReference];
    CGImageRelease(maskedReference);

    return maskedImage;
}

Application:

UIImage *image = [UIImage imageNamed:@"Photo.png"];
UIImage *mask = [UIImage imageNamed:@"Mask.png"];
self.imageView.image = [self cerateImageFromImage:image
                                     withMaskImage:mask];
+4
source

Source: https://habr.com/ru/post/1548570/


All Articles