Ein Algorithmus zur Berechnung der am meisten genutzten Farbe in einem Tetxure2D Objekt.(In XNA oder Monogame)
Leicht für Bitmap zu modifizieren;
siehe Image to byte array.
//بسم الله الرحمن الرحيم
//developed by ~3r0rXx
public Color GetColor(Texture2D Texture) //XNA/MONOGAME
{
Color[] __chace = new Color[Texture.Width * Texture.Height];
Color[] __copier = new Color[255 + 255 + (255 * 1)];
int[] __chace1 = new int[255 + 255 + (255 * 1)];
Func<byte, byte, byte, int, long> hash = (byte r__in, byte g__in, byte b__in, int n) =>
{
var h = 0L;
for (byte i = 0; i < 1; i++)
{
h = r__in + g__in + (b__in * i);
}
return h;
};
Texture.GetData<Color>(__chace);
int __index = 0;
int __max = __chace1[__index];
for (int j = 0; j < Texture.Height; j++)
{
for (int i = 0; i < Texture.Width; i++)
{
var c = __chace[i + j * Texture.Width];
var h = hash(c.R, c.G, c.B, Texture.Width * Texture.Height);
__chace1[h]++;
__copier[h] = c;
if (__chace1[h] > __max)
{
__max = __chace1[h];
__index = (int)h;
}
}
}
return __copier[__index];
}
Kommentare zum Snippet