iOS加载动态图层蒙版(即代码外部提供图层蒙版)

时间:2012-02-21 05:53:05

标签: ios xcode cocoa-touch layer

情况:想要将有趣的相框应用于图像,并将相框实现为图层蒙版,是否可以通过在obj-C代码之外加载相框模板来动态构建图层蒙版,以便我可以在没有触及代码的情况下更改框架图层?

最终结果将是这样的。 http://a3.mzstatic.com/us/r1000/106/Purple/9e/b9/9b/mzl.rdrrpcgr.320x480-75.jpg,但照片边缘/边框是在应用外部动态加载的,而不是内置到应用中。

理想情况下,想在photoshop中轻松创建相框作为png文件,此处的黑色像素将允许完全透明..然后我可以在iOS应用中加载此相框,因为框架图层将允许下面的图层完全通过掩模层是黑色的地方...

1 个答案:

答案 0 :(得分:2)

+ (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 masked = CGImageCreateWithMask([image CGImage], mask);
return [UIImage imageWithCGImage:masked];
}

然后,您可以将此方法与从URL加载的UIImage一起使用。

URL可以提供不同的UIImage,也可以采用UIImageMask加载的参数。这是否回答了你的问题?