【问题标题】:iOS load dynamic layer mask (i.e. layer mask is provided outside the code)iOS 加载动态图层蒙版(即代码外提供图层蒙版)
【发布时间】:2012-02-21 05:53:04
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios xcode cocoa-touch layer


    【解决方案1】:
    + (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 的参数。这能回答你的问题吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      • 2014-06-23
      • 1970-01-01
      相关资源
      最近更新 更多