+ avgcolor[0] = 0;
+ avgcolor[1] = 0;
+ avgcolor[2] = 0;
+ avgcolor[3] = 0;
+ for(j = 0; j < width * height; ++j)
+ {
+ temp1 = ((unsigned char *)palette_bgra_alpha) + (skindata[j]*4);
+ avgcolor[2] += temp1[0];
+ avgcolor[1] += temp1[1];
+ avgcolor[0] += temp1[2];
+ avgcolor[3] += temp1[3];
+ }
+ if(avgcolor[3] == 0) // just fully transparent pixels seen? bad luck...
+ avgcolor[3] = 255.0 * width * height;
+ if(avgcolor[3] == 0) // no pixels seen? even worse
+ avgcolor[3] = 1;
+ avgcolor[0] /= avgcolor[3];
+ avgcolor[1] /= avgcolor[3];
+ avgcolor[2] /= avgcolor[3];
+ avgcolor[3] /= width * 255.0 * height; // to 0..1 range
+ skinframe->avgcolor[0] = avgcolor[0];
+ skinframe->avgcolor[1] = avgcolor[1];
+ skinframe->avgcolor[2] = avgcolor[2];
+ skinframe->avgcolor[3] = avgcolor[3];
+