public static Color ChangeColor(Color color, float correctionFactor)
{
float red = (float)color.R;
float green = (float)color.G;
float blue = (float)color.B; if (correctionFactor < 0)
{
correctionFactor = 1 + correctionFactor;
red *= correctionFactor;
green *= correctionFactor;
blue *= correctionFactor;
}
else
{
red = (255 - red) * correctionFactor + red;
green = (255 - green) * correctionFactor + green;
blue = (255 - blue) * correctionFactor + blue;
} if(red<0) red=0;
if(red>255) red=255;
if(green<0) green=0;
if(green>255) green=255;
if(blue<0) blue=0;
if(blue>255) blue=255;
return Color.FromArgb(color.A, (int)red, (int)green, (int)blue);
}
加深:correctionFactor<0
变亮:correctionFactor>0
-1.0f <= correctionFactor <= 1.0f
附KnownColor中颜色较深的列表:
Color[] _multicolors = new Color[]{
Color.Black,Color.Blue,Color.BlueViolet,Color.Brown,Color.Chartreuse,Color.Chocolate,
Color.Crimson,Color.DarkBlue,Color.DarkCyan,Color.DarkGoldenrod,Color.DarkGreen,Color.DarkMagenta,
Color.DarkOliveGreen,Color.DarkOrange,Color.DarkOrchid,Color.DarkRed,Color.DarkSlateBlue,Color.DarkSlateGray,
Color.DarkTurquoise,Color.DarkViolet,Color.DeepPink,Color.DeepSkyBlue,Color.DimGray,Color.DodgerBlue,
Color.Firebrick,Color.ForestGreen,Color.Fuchsia,Color.Gold,Color.Goldenrod,Color.Gray,Color.Green,
Color.GreenYellow,Color.HotPink,Color.IndianRed,Color.Indigo,Color.LawnGreen,Color.LightCoral,
Color.LightSlateGray,Color.Lime,Color.LimeGreen,Color.Magenta,Color.Maroon,Color.MediumBlue,
Color.MediumOrchid,Color.MediumPurple,Color.MediumSlateBlue,Color.MediumSpringGreen,Color.MediumTurquoise,
Color.MediumVioletRed,Color.MidnightBlue,Color.Navy,Color.Olive,Color.OliveDrab,Color.Orange,Color.OrangeRed,
Color.Orchid,Color.Peru,Color.Plum,Color.Purple,Color.Red,Color.RosyBrown,Color.RoyalBlue,Color.SaddleBrown,
Color.Salmon,Color.SandyBrown,Color.SeaGreen,Color.Sienna,Color.Silver,Color.SkyBlue,Color.SlateBlue,
Color.SlateGray,Color.SpringGreen,Color.SteelBlue,Color.Teal,Color.Tomato,Color.Yellow,Color.YellowGreen
};