什么是按照可见光谱(红色到蓝色或蓝色到红色都可以)在 System.Media.Colors 中颜色排序的最快/最简单方法?
编辑:
这是排序结果(色相->饱和度->亮度): 这可能在技术上是正确的,但视觉效果仍然不对。有人能解释问题出在哪里吗?
编辑:
这是排序结果(色相->饱和度->亮度): 这可能在技术上是正确的,但视觉效果仍然不对。有人能解释问题出在哪里吗?
System.Media.Color
结构体并没有包含为此计算的属性。
你有两个选项:
System.Drawing.Color.GetHue
。旧版winforms时代的System.Drawing
颜色结构确实支持计算色调。这使得代码非常简单;像System.Drawing.Color.FromArgb(col.R, col.G, col.B).GetHue()
这样的代码就足够了 - 简洁明了!然而,这意味着您将处理两个具有相同名称的结构,并且您当然需要引用System.Drawing.dll
程序集。这种方法往往速度较慢并进行许多检查,因此如果性能至关重要,则可能不太吸引人。