如何在UIImage中获取形状的UIBezierPath或以特定形状裁剪UIImage

我是iOS的新手,我想知道我是否可以获得UIImageUIBezierPath 。 我有一个面部布局的UIImage ,想要获得UIBezierPath ,这有助于我裁剪UIImage 。 或者,任何人都可以告诉我有关裁剪UIImage的其他方法吗?但要确保裁剪是自定义形状(如:面部,心脏等),而不是矩形。

以下是使用图像屏蔽图像的代码:

 - (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; } 

用法:

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