Для проекта мне нужно уменьшить цвета с изображения с 24 до 8 бит.
Я хочу создать функцию, которая могла бы найти 256 наиболее часто используемых цветов в изображении поэтому я могу использовать эти цвета в новой цветовой палитре и выполнить некоторое цветовое квантование на изображении
У меня уже есть функция, которая может считывать цвета пикселей с изображения
public static byte[] OwnGetColorData(Bitmap bmp)
{
int height = bmp.Height;
int width = bmp.Width;
int res = height * width;
var colors = new List<List<byte>>();
var pixelColor = new List<byte>();
Color c;
for (int x = 0; x < bmp.Height; x++)
{
for(int y = 0; y< bmp.Width; y++)
{
c = bmp.GetPixel(x, y);
pixelColor.Add(c.R);
pixelColor.Add(c.G);
pixelColor.Add(c.B);
colors.Add(pixelColor);
pixelColor.Clear();
}
}
return pixelColor.ToArray();
}
на выходеэтой функции является 2-мерный массив, который имеет RGB-массив на каждый индекс пикселя. например: по индексу 0 находится пиксель 1 с массивом (255, 255, 255)