我使用this excellent SO post來弄清楚如何獲得不同的陰影和所選顏色的色調,但現在我希望改進算法。中間範圍內的顏色(RGB的加起來大約爲400到500)產生了類似於下面第2行和第4行所示的出色結果。但是在該範圍之外的顏色會產生更像您在第1行和第3行中看到的顏色,淺顏色不會淡出很多。我想我需要調整我的乘數來糾正這個問題,但是我的數學技能並不合格。使用RGB值改進顏色陰影和色調算法
private void getShadesAndTints(Color c)
{
int i; Double m;
int r; int g; int b;
for (i = 1; i < 21; i++)
{
m = i * 0.1;
r = (int)(c.R * m); if (r > 255) r = 255;
g = (int)(c.G * m); if (g > 255) g = 255;
b = (int)(c.B * m); if (b > 255) b = 255;
colorList.Add(Color.FromArgb(r, g, b));
}
}
如果你想嘗試一下自己,完整的代碼,請訪問:http://pastebin.com/QgCseY4k