From b59b60032a3f208c00ea20d000ef4b0a782f3a79 Mon Sep 17 00:00:00 2001 From: Jiyoun Park Date: Sun, 26 Feb 2012 10:46:56 +0000 Subject: [PATCH] fix gif cannot deal with transparent color. when make first frame, it didn't consider alpha value. change code to deal with alpha value SVN revision: 68450 --- .../src/modules/loaders/gif/evas_image_load_gif.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/legacy/evas/src/modules/loaders/gif/evas_image_load_gif.c b/legacy/evas/src/modules/loaders/gif/evas_image_load_gif.c index 9cd6f6e62b..dbb35841ec 100644 --- a/legacy/evas/src/modules/loaders/gif/evas_image_load_gif.c +++ b/legacy/evas/src/modules/loaders/gif/evas_image_load_gif.c @@ -483,10 +483,17 @@ _evas_image_load_frame_image_data(Image_Entry *ie, GifFileType *gif, Image_Entry } else { - r = cmap->Colors[rows[i1][j1]].Red; - g = cmap->Colors[rows[i1][j1]].Green; - b = cmap->Colors[rows[i1][j1]].Blue; - *ptr++ = ARGB_JOIN(0xff, r, g, b); + if (rows[i1][j1] == alpha) + { + ptr++ ; + } + else + { + r = cmap->Colors[rows[i1][j1]].Red; + g = cmap->Colors[rows[i1][j1]].Green; + b = cmap->Colors[rows[i1][j1]].Blue; + *ptr++ = ARGB_JOIN(0xff, r, g, b); + } } } }