Evas: fix gif cannot decode alpha value correctly.

This commit is contained in:
Jiyoun Park 2013-06-05 15:26:09 +09:00
parent a553f9459f
commit ebf0cd6728
3 changed files with 29 additions and 9 deletions

View File

@ -1,3 +1,7 @@
2013-06-05 Jiyou Park
* Evas: Fix gif cannot decode alpha value correctly.
2013-06-04 Jean-Philippe Andre
* Evas: improve stability of Evas_Cserve2.

2
NEWS
View File

@ -327,3 +327,5 @@ Fixes:
* Fix eeze sensors to not segv on shutdown
* Evas: correctly detect if a loader support asynchronous preloading.
* Evas: improve stability of Evas_Cserve2.
* Evas: Fix gif cannot decode alpha value correctly.

View File

@ -451,10 +451,17 @@ _evas_image_load_frame_image_data(Eina_File *f,
}
else
{
r = cmap->Colors[rows[i1][j1 * scale_ratio]].Red;
g = cmap->Colors[rows[i1][j1 * scale_ratio]].Green;
b = cmap->Colors[rows[i1][j1 * scale_ratio]].Blue;
*ptr++ = ARGB_JOIN(0xff, r, g, b);
if (rows[i][j * scale_ratio] == alpha)
{
ptr++ ;
}
else
{
r = cmap->Colors[rows[i1][j1 * scale_ratio]].Red;
g = cmap->Colors[rows[i1][j1 * scale_ratio]].Green;
b = cmap->Colors[rows[i1][j1 * scale_ratio]].Blue;
*ptr++ = ARGB_JOIN(0xff, r, g, b);
}
}
}
}
@ -488,10 +495,17 @@ _evas_image_load_frame_image_data(Eina_File *f,
}
else
{
r = cmap->Colors[rows[i1][j1 * scale_ratio]].Red;
g = cmap->Colors[rows[i1][j1 * scale_ratio]].Green;
b = cmap->Colors[rows[i1][j1 * scale_ratio]].Blue;
*ptr++ = ARGB_JOIN(0xff, r, g, b);
if (rows[i][j * scale_ratio] == alpha)
{
ptr++ ;
}
else
{
r = cmap->Colors[rows[i1][j1 * scale_ratio]].Red;
g = cmap->Colors[rows[i1][j1 * scale_ratio]].Green;
b = cmap->Colors[rows[i1][j1 * scale_ratio]].Blue;
*ptr++ = ARGB_JOIN(0xff, r, g, b);
}
}
}
}
@ -538,7 +552,7 @@ _evas_image_load_frame_image_data(Eina_File *f,
}
else
{
if (rows[i1][j1] == alpha)
if (rows[i1][j1 * scale_ratio] == alpha)
{
ptr++;
}