我需要创建基于图像的掩码(任何可能的形状)。我需要:
因此,主要的问题是如何设置基于黑白图像的CGPath?或者是否可以将掩码直接从图像中放置?
谢谢!
掩码的示例图像:

发布于 2011-12-09 10:10:56
您将需要创建您的图像与阿尔法通道。根据CALayer的掩码属性文档:
是一种可选层,其alpha通道被用作掩码,用于在图层的背景和与过滤后的背景复合图层内容的结果之间进行选择。
因此,您想要用作掩码的层需要一个alpha通道。如果要使用图像创建这样的通道,则图像本身需要一个alpha通道。因此,您需要将上面发布的黑白面具复制到图像的alpha通道中。该特定图像的颜色被忽略。然后加载图像,为其设置图层内容,并将该层用作不同的层掩码。围绕这件事:
UIImage* imageWithAlphaChannel = [UIImage imageNamed:@"alpha.png"]; // Won't work with jpg
CGImageRef cgImageWithAlpha = [imageWithAlphaChannel CGImage];
CALayer* maskingLayer = [CALayer layer];
maskingLayer.contents = (id)cgImageWithAlpha;
//Assume viewToBeMasked is the view, who's layer needs to be masked
CALayer* layerToBeMasked = viewToBeMasked.layer;
layerToBeMasked.mask = maskingLayer;
maskingLayer.frame = layerToBeMasked.bounds;
//Alternativly use: viewToBeMasked.layer.mask = maskingLayer;在浏览器中编码,找出系统错误。
将所有的掩码存储为png文件可能会影响应用程序的大小。您可以将掩码存储为jpgs,并使用CoreGraphics绘图函数在运行时创建适当的alpha版本。但这是另一个问题.
发布于 2011-12-08 16:06:15
非常类似的问题,我认为,我做了一段时间前。基本上,您需要从导出该文件,然后运行一个例程将该文件转换为CGPath。
在我对这个问题的回答中,你会发现如何做到这一点:
https://stackoverflow.com/questions/8433821
复制相似问题