使用 CALayer 显示 alpha 映射图像

Posted

技术标签:

【中文标题】使用 CALayer 显示 alpha 映射图像【英文标题】:Using a CALayer to display an alpha mapped image 【发布时间】:2012-03-26 10:44:41 【问题描述】:

我有一个 CALayer 对象,我想在其中插入一个配备 alpha 贴图的 UIImage,只需设置图层的内容属性即可。但是,当我显示这个 CALayer 时,所有的透明度都会丢失。我检查了图层的背景颜色(不透明度对使用内容设置的图像没有影响),看起来是正确的。

有没有什么方法可以在不使用 CALayer 的 mask 属性的情况下保留 .PNG 的 alpha 贴图透明度,从而将提供的遮罩和内容图像自己的透明度贴图结合起来?

【问题讨论】:

【参考方案1】:

它对我来说确实很好用。 但请确保将图层的 opaque 属性设置为 NO,并将 backgroundColor 属性设置为清晰的颜色。

【讨论】:

我已经尝试了这两种方法,但实际上根据 Apple 的文档,Opaque 属性不应该影响使用 CGImageRef 设置属性的 CALayers。【参考方案2】:

哈,没关系,愚蠢的错误。这些图层以错误的顺序组装,后面应该是前景。这给人的印象是它不透明,而实际上它是透明的。

【讨论】:

以上是关于使用 CALayer 显示 alpha 映射图像的主要内容,如果未能解决你的问题,请参考以下文章

Alpha 通道的图像映射

无法让 CALayer 在 UIView 中显示

OpenGL/GLSE alpha 遮罩

图像更改 CALayer 核心动画

如果 CALayer 边界如何独立地 CALayer 图像缩放

核心图像过滤器 CISourceOverCompositing 未按预期显示与 alpha 叠加