У меня есть словарь с двумя цветами:
private Dictionary<string, Color> someColours = new Dictionary<string, Color>()
{
{"red", Color.FromArgb(255,0,0) },
{ "purple",Color.FromArgb(100,100,100) }
};
, и у меня есть переменная Color imageColour
, которая представляет значения RGB (100,100,100)
Я хотел бы узнатькакой цвет в словаре является самым близким к моему цвету imageColour
на основе значений RGB.
Вот то, что я придумал, но каждый раз, когда я получаю 0 значений для всех 3 RGB.
//Compare values
public Color CompareColours()
{
var imageColour = AverageColour();
int a = 0;
int c = 0;
int d = 0;
//check if Dictionary contains 'Color' type value
if (someColours.OfType<Color>().Any())
{ //Loop over dictionary
foreach (var setColors in someColours.Values)
{ //Compare both values
if(setColors.ToArgb().Equals(imageColour.ToArgb()))
{
Color testColr = setColors;
a = a + testColr.R;
c += testColr.G;
d += testColr.B;
}
}
}
return Color.FromArgb(a, c, d);
}
Любая помощь будет высоко ценится!