rendered paste bodystatic gint8 get_bgcol(gint line, guint8 type)
{
guint32 min_d, d, color_index, x, bg_red, bg_green, bg_blue, color_r, color_g, color_b;
GimpRGB bgcolor;
if(!gimp_context_get_background(&bgcolor))
return 0;
printf("bg color is (%u, %u, %u).\n", bgcolor.r, bgcolor.g, bgcolor.b);
min_d = 99999999; /* insanely high to make sure d is never higher. */
color_index = 0;
bg_red = bgcolor.r/16777216; /* Convert 32 bit gimp values to normal 8-bit values */
bg_green = bgcolor.g/16777216;
bg_blue = bgcolor.b/16777216;
printf("in 8-bit notation, (%u, %u, %u).\n", bg_red, bg_green, bg_blue);
for (x = 0; x<16; x++)
{
color_r = vicpalette[x*3];
color_g = vicpalette[x*3+1];
color_b = vicpalette[x*3+2];
d = sqrt( pow(bg_red - color_r, 2) + pow(bg_green - color_g, 2) + pow (bg_blue - color_b, 2) );
printf("Checked color %d = %u, %u, %u. Error is %u.\n", x, color_r, color_g, color_b, d);
if(d < min_d)
{
min_d = d;
color_index = x;
}
}
printf("Closest match is %u.\n\n", color_index);
return color_index;
}