gpt4 book ai didi

objective-c - 绘制阴影以获得透明形状

转载 作者:行者123 更新时间:2023-12-01 18:28:56 25 4
gpt4 key购买 nike

我只想为某些形状创建阴影(没有导致阴影的对象)。例如,对于椭圆:

CGContextSetShadowWithColor(ctx, offset, blur, color.CGColor);
CGContextFillEllipseInRect(ctx, drawInRect);

阴影画得很好,但我希望形状透明。我尝试将填充颜色设置为清除:
CGContextSetFillColorWithColor(ctx, UIColor.clearColor.CGColor);

这也会导致阴影被抑制。

获得带有黑色阴影的透明形状的最简单方法是什么?如果我需要做口罩,我该如何使用Quartz?

编辑:正如第一位回答者所指出的,这个问题是模棱两可或令人困惑的。我已经尝试将其清除。

最佳答案

您只想看阴影,而不看椭圆形?

如果使用Quartz进行绘制,这会很棘手,因为Quartz使用椭圆的外观生成阴影。如果修剪或遮盖椭圆,那也会影响阴影。

一种可能性是调整阴影的偏移量以及椭圆的位置,以使椭圆位于上下文的可见区域之外。例如,如果在100 x 100位图上下文中进行绘制,则可以将椭圆的位置设置为{normalPosition.x-100,normalPosition.y},并将阴影的offset.x增加100。这样,椭圆将完全脱离上下文,但阴影会在同一位置。 (当然,请根据您的情况调整数学。)

另一种选择:如果在CALayer上使用shadowPath属性,则仅基于该路径而不是图层内容生成阴影。根据您的具体情况,与纯CG相比​​,管理起来可能更容易。

关于objective-c - 绘制阴影以获得透明形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10608734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com