如何在 iPhone 上使形状不规则的透明 CALayer 变暗?

Posted

技术标签:

【中文标题】如何在 iPhone 上使形状不规则的透明 CALayer 变暗?【英文标题】:How to Darken an Irregularly Shaped Transparent CALayer on the iPhone? 【发布时间】:2010-09-20 20:18:11 【问题描述】:

我将图像放入可能不规则透明的 CALayer 中:

 theCardLayer.front = [CALayer layer];
 theCardLayer.front.contents = (id)[cardDrawing CGImage];

换句话说,它可能是填充图层的正方形,也可能是使角落透明的八边形。

我有时想使这一层变暗,但不使透明位变暗。有关如何以编程方式执行此操作的任何建议?

【问题讨论】:

【参考方案1】:

看看CGBlendMode;通过创建一个新的CGBitmapContext、绘制图像然后进行灰色填充并将生成的图像分配给您的图层来完成多重混合,应该可以很好地工作。

【讨论】:

是的,但是非常慢。蜗牛跑得更快。【参考方案2】:

您可以使用CGShapeLayer。将其路径设置为要绘制的形状。如果需要,您还可以使用形状图层作为其他图层的蒙版。

【讨论】:

以上是关于如何在 iPhone 上使形状不规则的透明 CALayer 变暗?的主要内容,如果未能解决你的问题,请参考以下文章

如何创建不规则形状的qml组件

如何在 Android 上使图像透明?

如何在 Android 上使背景透明 20%

使用JS控制图片形状

裁剪不规则形状的图像

如何制作非矩形形状的图像