Согласно исходному коду библиотеки, кажется, что она на самом деле усредняет цвета из цветовой палитры рисунка
public async Task<QuantizedColor> GetColor(BitmapDecoder sourceImage, int quality = DefaultQuality,
bool ignoreWhite = DefaultIgnoreWhite)
{
var palette = await GetPalette(sourceImage, 3, quality, ignoreWhite);
var dominantColor = new QuantizedColor(new Color
{
A = Convert.ToByte(palette.Average(a => a.Color.A)),
R = Convert.ToByte(palette.Average(a => a.Color.R)),
G = Convert.ToByte(palette.Average(a => a.Color.G)),
B = Convert.ToByte(palette.Average(a => a.Color.B))
}, Convert.ToInt32(palette.Average(a => a.Population)));
return dominantColor;
}
В данном конкретном случае, я думаю, установка ignoreWhite
на true
может вернуть реальный черный цвет, хотя кажется, что true
действительно является настройкой по умолчанию.
Я рекомендую использовать другой метод public
, предоставляемый библиотекой: GetPalette
, чтобы увидеть реальную цветовую палитру этого изображения. Это должно объяснить, почему вы получаете именно этот цвет.
var palette = await GetPalette(decoder);