return ret;
}
-int __gif_get_index_in_colormap(ColorMapObject * color_map, GifColorType get_color, int *index)
+int __gif_get_index_in_colormap(gif_image_s *gif_image)
{
int i = 0;
- mm_util_retvm_if(color_map == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
+ mm_util_retvm_if(gif_image->image_desc.ColorMap == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
+ mm_util_retvm_if(gif_image->image_desc.ColorMap->Colors == NULL, MM_UTIL_ERROR_INVALID_PARAMETER, "Invalid parameter");
- *index = -1;
+ /* default is no transparent color */
+ gif_image->graphic_control_block.TransparentColor = -1;
- for (i = 0; i < color_map->ColorCount; i++) {
- if(color_map->Colors[i].Red == get_color.Red &&
- color_map->Colors[i].Green == get_color.Green &&
- color_map->Colors[i].Blue == get_color.Blue) {
- *index = i;
+ for (i = 0; i < gif_image->image_desc.ColorMap->ColorCount; i++) {
+ if(gif_image->image_desc.ColorMap->Colors[i].Red == gif_image->transparent_color.Red &&
+ gif_image->image_desc.ColorMap->Colors[i].Green == gif_image->transparent_color.Green &&
+ gif_image->image_desc.ColorMap->Colors[i].Blue == gif_image->transparent_color.Blue) {
+ gif_image->graphic_control_block.TransparentColor = i;
break;
}
}
}
if (gif_image->has_transparent) {
- ret = __gif_get_index_in_colormap(gif_image->image_desc.ColorMap,
- gif_image->transparent_color, &gif_image->graphic_control_block.TransparentColor);
+ ret = __gif_get_index_in_colormap(gif_image);
mm_util_retvm_if(ret != MM_UTIL_ERROR_NONE, ret, "__gif_get_index_in_colormap failed");
}
mm_util_retvm_if(ret != MM_UTIL_ERROR_NONE, ret, "_gif_image_write_ext_blocks failed");
/* Write image description */
- ret = _gif_image_write_image_desc(gif_file, gif_image);\
+ ret = _gif_image_write_image_desc(gif_file, gif_image);
mm_util_retvm_if(ret != MM_UTIL_ERROR_NONE, ret, "_gif_image_write_image_desc failed");
/* Write image data */