diff --git a/api.c b/api.c index 78b6fd8..6e7abc9 100644 --- a/api.c +++ b/api.c @@ -324,6 +324,17 @@ imlib_blend_image_onto_image(Imlib_Image source_image, source_width, source_height); } +Imlib_Image +imlib_create_image(int width, int height) +{ + DATA32 *data; + + data = malloc(width *height * sizeof(DATA32)); + if (data) + return (Imlib_Image)__imlib_CreateImage(width, height, data); + return NULL; +} + Imlib_Image imlib_create_image_using_data(int width, int height, DATA32 *data) @@ -338,9 +349,15 @@ imlib_create_image_using_copied_data(int width, int height, ImlibImage *im; im = __imlib_CreateImage(width, height, NULL); + if (!im) + return; im->data = malloc(width * height *sizeof(DATA32)); - memcpy(im->data, data, width * height *sizeof(DATA32)); - return (Imlib_Image)im; + if (data) + { + memcpy(im->data, data, width * height *sizeof(DATA32)); + return (Imlib_Image)im; + } + return NULL; } Imlib_Image diff --git a/api.h b/api.h index a63ba5b..61bcaaf 100644 --- a/api.h +++ b/api.h @@ -101,6 +101,7 @@ void imlib_blend_image_onto_image(Imlib_Image source_image, /* apply alpha of one image to another */ /* image creation and grabbing */ +Imlib_Image imlib_create_image(int width, int height); Imlib_Image imlib_create_image_using_data(int width, int height, DATA32 *data); Imlib_Image imlib_create_image_using_copied_data(int width, int height,