Feedback

C# - Methode zur Determinierung der meist genutzten Farbe

Veröffentlicht von am 11/3/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!