[英]How to get UIBezierPath of shape in UIImage or crop UIImage in a certain shape
I am new in iOS, I want to know if I can get the UIBezierPath
of a UIImage
. 我是iOS的新手,我想知道我是否可以获得
UIImage
的UIBezierPath
。 I have a UIImage
of face layout and want to get the UIBezierPath
, which helps me in cropping the UIImage
. 我有一个面部布局的
UIImage
,想要获得UIBezierPath
,这有助于我裁剪UIImage
。 Or, can any one tell me about other ways of cropping UIImage
s?, but make sure cropping is in a custom shape (like: face, heart etc), not in a rectangle. 或者,任何人都可以告诉我关于裁剪
UIImage
的其他方法吗?但要确保裁剪是自定义形状(如:面部,心脏等),而不是矩形。
Here is the code to mask image with 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;
}
Usage: 用法:
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.