NSBezierPath笔画颜色错误



我想用NSBezierPath:

在我的自定义NSViewDrawRect周围画一个1px宽的边框
BorderColor.Set();
var path = NSBezierPath.FromRect(theRect);
path.LineWidth = 1;
path.Stroke();

现在BorderColor被设置为NSColor.Gray,我可以看到,而调试有一个RGBA颜色代码:(127,127,127,255)
但是屏幕上出现的1px宽边框的颜色是:(194,194,194,255)
当我将path.LineWidth设置为3时,我可以看到3条线,中间的颜色是错误的(194..),两个翅膀的颜色是(135,135,135,255 ..)-这与想要的颜色足够接近(127..)。
当我使用四个1px宽的矩形作为边框,然后Fill这4个矩形时,我也得到了(135..)的颜色,这也是可以的。

我可以使用基于矩形的解决方案,我只是想知道:
是否有一种方法来实现正确的颜色为1px宽的NSBezierPath.Stroke边框

假设您正确设置了笔画颜色(我们不知道BorderColor是如何设置的),可能会出现这样的情况:您正在测量屏幕上的颜色值,特别是对于细线,可能已经被反锯齿化了,所以您看不到原始颜色,而是看到反锯齿算法的输出。

将宽度设置为大一些,比如10,并测量"blob"中间的颜色,以确保你不会追逐反混叠的伪影。

相关内容

  • 没有找到相关文章

最新更新