iphone - 如何在 quartz 2d 中绘制 alpha < 1 的线

标签 iphone ios ios4 quartz-graphics

毫无疑问,这可能是一个重复的问题,但我无法从这里的任何帖子中获得正确的解决方案。因此,我将其作为新帖子发布,希望能得到一些解决方案。

我的绘图应用程序我想为要绘制的线条提供不透明的功能。 但是当我将 alpha 分配给颜色时,我在线条之间得到了重叠点。

在某些地方,我发现在两个 View 中绘制可以解决这个问题,但我无法理解其背后的逻辑。

enter image description here

我正在使用普通的 quartz 二维代码在触摸事件上画线。

最佳答案

In CoreGraphics drawing how can I keep the point of overlap from being darker than the rest of the line? 的重复项

诀窍是让画笔描边位于其自己的缓冲区中,您可以在将整个内容与背景混合之前正确剪辑 Alpha。

这是一种方法:创建 2 个 View ,一个用于背景,另一个用于线条。在顶 View 中绘制 alpha 为 1 的线条!然后将整个前景 View 的 alpha 设置为 0.5(或您想要使用的任何值)。

[topView setAlpha:0.5];

这将防止半透明画笔笔触增强。但是如果有 2 个不同的笔触相互交叉呢(就像你的例子一样)。你想让这种交集更加强烈吗?如果是这样,那么您需要为每个笔触创建一个新 View 。为了防止 View 过多而导致内存溢出,您需要将之前的顶 View 与背景混合。

关于iphone - 如何在 quartz 2d 中绘制 alpha < 1 的线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9407546/

相关文章:

iphone - 如何在 tableview (iPhone) 的特定部分清除(分隔符颜色)?

ios - UIColor ios 的两个初始化函数

javascript - iPhone img 加载失败

ios - swift: fatal error :在展开可选值 (lldb) 时意外发现 nil,线程 1

iphone - 如何确定当前运行的异步 GCD 调度队列

iphone - iOS 测试/规范 TDD/BDD 和集成与验收测试

ios - 可定制的曲线图,可以显示不同点的图像

ios - 如何以编程方式在 UITableView 背景图像上设置 alpha 和内容模式?

iphone - 如何将 "nodeContent"埋入数组中

iphone - 下载一个应用程序并安装 2 个应用程序