Feedback

C# - Methode zur Determinierung der meist genutzten Farbe

Veröffentlicht von am 03.11.2015
(0 Bewertungen)
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];
}
Abgelegt unter XNA, MONOGAME, Algorithm.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!