如何使用黑白图像屏蔽视图?

时间:2010-04-05 11:03:28

标签: iphone

我听说可以用黑/白图像掩盖视图,其中黑色表示完全透明,白色表示视图可见。与clipsToBounds的最大区别在于视图可以剪切成有趣的形状,如圆形或星形。我怎么能这样做?

3 个答案:

答案 0 :(得分:4)

查看函数

void CGContextClipToMask (
   CGContextRef c,
   CGRect rect,
   CGImageRef mask
);

如果我理解正确,它会完全符合您的要求。

答案 1 :(得分:4)

CGImageRef maskRef = <some cgimage>; 
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef), CGImageGetHeight(maskRef), CGImageGetBitsPerComponent(maskRef), CGImageGetBitsPerPixel(maskRef), CGImageGetBytesPerRow(maskRef), CGImageGetDataProvider(maskRef), NULL, YES);
CGContextClipToMask(context, maskRect, mask);
CGImageRelease(mask);

答案 2 :(得分:1)

 CGImageRef maskImage = <Black-White Image>
 const CGFloat components[6] = {0,0,0,0,0,0}; // mask black color
 CGImageRef mask = CGImageCreateWithMaskingColors(maskImage, components);
 CGContextClipToMask(ctx, mask)
// draw images will be masked