iOS加载动态层掩码(即在代码外部提供层掩码)



情况:想要将有趣的相框应用于图像,并且相框被实现为层掩码,是否可以通过在obj-C代码之外加载相框模板来动态构建层掩码,这样我就可以在不接触代码的情况下更改帧层?

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

理想情况下,我想在photoshop中轻松创建一个相框作为png文件,其中黑色像素将允许完全透明。。然后我可以在iOS应用程序中加载这个相框,因为相框层将允许下面的层完全穿过遮罩层为黑色的地方。。。

+ (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参数。这能回答你的问题吗?

最新更新