[英]How to get UIBezierPath of shape in UIImage or crop UIImage in a certain shape
我是iOS的新手,我想知道我是否可以獲得UIImage
的UIBezierPath
。 我有一個面部布局的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];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.