gpt4 book ai didi

cocoa - NSBezierPath 描边颜色错误

转载 作者:行者123 更新时间:2023-12-03 16:35:21 26 4
gpt4 key购买 nike

我想在 DrawRect 中使用 NSBezierPath 在我的自定义 NSView 周围绘制一个 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..),2 个翅膀的颜色 (135,135,135,255) - 足够接近想要的(127..)颜色就可以了。
当我使用四 block 1px 宽的矩形作为边框,并填充这 4 个矩形时,我也得到了 (135..) 颜色,这又没问题了。

我可以使用这个基于矩形的解决方案,我只是想知道:
有没有办法使用 NSBezierPath.Stroke 实现 1px 宽边框的正确颜色?

最佳答案

假设您正确设置了描边颜色(我们看不到 BorderColor 是如何设置的),您可能正在测量屏幕上的颜色值,其中 -特别是对于细线 - 可能已进行抗锯齿处理,因此您看不到原始颜色,而是看到抗锯齿算法的输出。

将宽度设置为更大的值,例如 10,并测量“ Blob ”中间的颜色,以确保您不会追求抗锯齿伪影。

关于cocoa - NSBezierPath 描边颜色错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32603932/

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