rendered paste bodyunsigned int *sepia_image(Ewl_Widget *image)
{
unsigned int *im_data, *im_data_new;
int i, r, rr, g, gg, b, bb, a, ew, eh;
im_data = evas_object_image_data_get(EWL_IMAGE(image)->image, FALSE);
evas_object_image_size_get(EWL_IMAGE(image)->image, &ew, &eh);
im_data_new = malloc(sizeof(unsigned int) * ew * eh);
for (i = 0; i < (ew * eh); i++)
{
b = (int)((im_data[i]) & 0xff);
g = (int)((im_data[i] >> 8) & 0xff);
r = (int)((im_data[i] >> 16) & 0xff);
a = (int)((im_data[i] >> 24) & 0xff);
if (a > 0 && a < 255)
{
b = b * (255 / a);
g = g * (255 / a);
b = b * (255 / a);
}
rr = (int)(((r + g + b)/3)+40);
if (rr < 0) rr = 0;
if (rr > 255) rr = 255;
gg = (int)(((r + g + b)/3)+2);
if (gg < 0) gg = 0;
if (gg > 255) gg = 255;
bb = (int)(((r + g + b)/3)+2);
if (bb < 0) bb = 0;
if (bb > 255) bb = 255;
if (a > 0 && a < 255)
{
rr = (rr * a) / 255;
gg = (gg * a) / 255;
bb = (bb * a) / 255;
}
im_data_new[i] = (a << 24) | (rr << 16) | (gg << 8) | bb;
}
return im_data_new;
}