我想变暗现有的颜色以用于渐变画笔。请问有人能告诉我该怎么做?如何调整颜色的亮度?
C#,.NET 2.0,GDI +
Color AdjustBrightness(Color c1, float factor)
{
float r = ((c1.R * factor) > 255) ? 255 : (c1.R * factor);
float g = ((c1.G * factor) > 255) ? 255 : (c1.G * factor);
float b = ((c1.B * factor) > 255) ? 255 : (c1.B * factor);
Color c = Color.FromArgb(c1.A,(int)r, (int)g, (int)b);
return c ;
}
这工作,但没有按”实际上为色彩值提供了精确的值。我建议查看Richard或dommer的答案,了解HSL/HSV颜色模型的细节。 – Ant 2009-04-29 10:05:34
如果你决定使用* 1.25来表现更亮,就好像结果超过255一样,你必须小心,它会抛出异常。 – 2012-11-12 17:29:24