我正在尝试使用iPhone相机胶卷中的图像为自定义样式UIButton创建图像。该按钮具有圆形背景,并有效地显示为圆形。现在,我需要在按钮中间添加一个图像,该图像也会显示为圆形。
如何切割方形UIImage使其在圆形区域之外具有透明性?
如果涉及遮罩,我是否需要预渲染遮罩,或者可以以编程方式创建一个遮罩(例如圆圈)?
谢谢!
最佳答案
是的,您可以使用CoreGraphics
动态绘制蒙版。
然后,您可以创建遮罩的图像。
屏蔽示例:
- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage
{
CGImageRef maskRef = maskImage.CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef maskedImageRef = CGImageCreateWithMask([image CGImage], mask);
UIImage *maskedImage = [UIImage imageWithCGImage:maskedImageRef];
CGImageRelease(maskedImageRef);
CGImageRelease(mask);
return maskedImage;
}