summaryrefslogtreecommitdiff
path: root/components/rtgui/common/image.c
diff options
context:
space:
mode:
Diffstat (limited to 'components/rtgui/common/image.c')
-rw-r--r--components/rtgui/common/image.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/components/rtgui/common/image.c b/components/rtgui/common/image.c
index 45a1013a69..0160c990ea 100644
--- a/components/rtgui/common/image.c
+++ b/components/rtgui/common/image.c
@@ -64,47 +64,47 @@ void rtgui_system_image_init(void)
#endif
}
-static struct rtgui_image_engine* rtgui_image_get_engine(const char* type)
+static struct rtgui_image_engine* rtgui_image_get_engine_by_filename(const char* fn)
{
struct rtgui_list_node *node;
struct rtgui_image_engine *engine;
+ const char* ext;
+
+ ext = fn + rt_strlen(fn);
+ while (ext != fn)
+ {
+ if (*ext == '.') { ext ++; break; }
+ ext --;
+ }
+ if (ext == fn) return RT_NULL; /* no ext */
rtgui_list_foreach(node, &_rtgui_system_image_list)
{
engine = rtgui_list_entry(node, struct rtgui_image_engine, list);
-
- if (strncasecmp(engine->name, type, strlen(engine->name)) ==0)
+ if (strncasecmp(engine->name, ext, strlen(engine->name)) == 0)
return engine;
}
return RT_NULL;
}
-#if defined(RTGUI_USING_DFS_FILERW) || defined(RTGUI_USING_STDIO_FILERW)
-static struct rtgui_image_engine* rtgui_image_get_engine_by_filename(const char* fn)
+static struct rtgui_image_engine* rtgui_image_get_engine(const char* type)
{
struct rtgui_list_node *node;
struct rtgui_image_engine *engine;
- const char* ext;
-
- ext = fn + rt_strlen(fn);
- while (ext != fn)
- {
- if (*ext == '.') { ext ++; break; }
- ext --;
- }
- if (ext == fn) return RT_NULL; /* no ext */
rtgui_list_foreach(node, &_rtgui_system_image_list)
{
engine = rtgui_list_entry(node, struct rtgui_image_engine, list);
- if (strncasecmp(engine->name, ext, strlen(engine->name)) == 0)
+
+ if (strncasecmp(engine->name, type, strlen(engine->name)) ==0)
return engine;
}
return RT_NULL;
}
+#if defined(RTGUI_USING_DFS_FILERW) || defined(RTGUI_USING_STDIO_FILERW)
struct rtgui_image* rtgui_image_create_from_file(const char* type, const char* filename, rt_bool_t load)
{
struct rtgui_filerw* filerw;