diff options
Diffstat (limited to '')
-rw-r--r-- | w3mimg/fb/fb_imlib2.c | 209 |
1 files changed, 110 insertions, 99 deletions
diff --git a/w3mimg/fb/fb_imlib2.c b/w3mimg/fb/fb_imlib2.c index bfc23f7..3041594 100644 --- a/w3mimg/fb/fb_imlib2.c +++ b/w3mimg/fb/fb_imlib2.c @@ -1,4 +1,4 @@ -/* $Id: fb_imlib2.c,v 1.4 2002/07/18 15:01:31 ukai Exp $ */ +/* $Id: fb_imlib2.c,v 1.5 2002/07/18 15:14:21 ukai Exp $ */ /************************************************************************** fb_imlib2.c 0.2 Copyright (C) 2002, hito **************************************************************************/ @@ -6,146 +6,157 @@ #include "fb.h" #include "fb_img.h" -static void set_prm(IMAGE *img); +static void set_prm(IMAGE * img); -IMAGE *fb_load_image(char *filename, int w, int h) +IMAGE * +fb_load_image(char *filename, int w, int h) { - Imlib_Image image; - IMAGE *img; + Imlib_Image image; + IMAGE *img; - if(filename == NULL) - return NULL; + if (filename == NULL) + return NULL; - img = malloc(sizeof(*img)); - if(img == NULL) - return NULL; + img = malloc(sizeof(*img)); + if (img == NULL) + return NULL; - image = imlib_load_image(filename); - if(image == NULL){ - free(img); - return NULL; - } + image = imlib_load_image(filename); + if (image == NULL) { + free(img); + return NULL; + } - imlib_context_set_image(image); + imlib_context_set_image(image); - img->image = image; - set_prm(img); + img->image = image; + set_prm(img); - fb_resize_image(img, w, h); + fb_resize_image(img, w, h); - return img; + return img; } -int fb_draw_image(IMAGE *img, int x, int y, int sx, int sy, int width, int height) +int +fb_draw_image(IMAGE * img, int x, int y, int sx, int sy, int width, int height) { - int i, j, r, g, b, a = 0, offset; - - if(img == NULL) - return 1; - - for(j = sy; j < sy + height && j < img->height; j++){ - offset = j * img->width; - for(i = sx; i < sx + width && i < img->width; i++){ - a = (img->data[offset + i] >> 24) & 0x000000ff; - r = (img->data[offset + i] >> 16) & 0x000000ff; - g = (img->data[offset + i] >> 8) & 0x000000ff; - b = (img->data[offset + i] ) & 0x000000ff; - - if(a == 0) - fb_pset(i + x - sx, j + y - sy, bg_r, bg_g, bg_b); - else - fb_pset(i + x - sx, j + y - sy, r, g, b); + int i, j, r, g, b, a = 0, offset; + + if (img == NULL) + return 1; + + for (j = sy; j < sy + height && j < img->height; j++) { + offset = j * img->width; + for (i = sx; i < sx + width && i < img->width; i++) { + a = (img->data[offset + i] >> 24) & 0x000000ff; + r = (img->data[offset + i] >> 16) & 0x000000ff; + g = (img->data[offset + i] >> 8) & 0x000000ff; + b = (img->data[offset + i]) & 0x000000ff; + + if (a == 0) + fb_pset(i + x - sx, j + y - sy, bg_r, bg_g, bg_b); + else + fb_pset(i + x - sx, j + y - sy, r, g, b); + } } - } - return 0; + return 0; } -int fb_resize_image(IMAGE *img, int width, int height) +int +fb_resize_image(IMAGE * img, int width, int height) { - Imlib_Image image; + Imlib_Image image; - if(width < 1 || height < 1 || img == NULL) - return 1; + if (width < 1 || height < 1 || img == NULL) + return 1; - if(width == img->width && height == img->height) - return 0; + if (width == img->width && height == img->height) + return 0; - image = imlib_create_cropped_scaled_image(0, 0, img->width, img->height, width, height); - if(image == NULL) - return 1; + image = + imlib_create_cropped_scaled_image(0, 0, img->width, img->height, width, + height); + if (image == NULL) + return 1; - imlib_context_set_image(img->image); - imlib_free_image(); + imlib_context_set_image(img->image); + imlib_free_image(); - img->image = image; - set_prm(img); - return 0; + img->image = image; + set_prm(img); + return 0; } -void fb_free_image(IMAGE *img) +void +fb_free_image(IMAGE * img) { - if(img == NULL) - return; + if (img == NULL) + return; - imlib_context_set_image(img->image); - imlib_free_image(); - free(img); + imlib_context_set_image(img->image); + imlib_free_image(); + free(img); } -IMAGE *fb_dup_image(IMAGE *img) +IMAGE * +fb_dup_image(IMAGE * img) { - Imlib_Image image; - IMAGE *new_img; + Imlib_Image image; + IMAGE *new_img; - if(img == NULL) - return NULL; + if (img == NULL) + return NULL; - new_img = malloc(sizeof(*img)); - if(new_img == NULL) - return NULL; + new_img = malloc(sizeof(*img)); + if (new_img == NULL) + return NULL; - imlib_context_set_image(img->image); - image = imlib_clone_image(); + imlib_context_set_image(img->image); + image = imlib_clone_image(); - if(image == NULL){ - free(new_img); - return NULL; - } + if (image == NULL) { + free(new_img); + return NULL; + } - new_img->image = image; - set_prm(new_img); - return new_img; + new_img->image = image; + set_prm(new_img); + return new_img; } -int fb_rotate_image(IMAGE *img, int angle) +int +fb_rotate_image(IMAGE * img, int angle) { - int orientation; + int orientation; - if(img == NULL) - return 1; + if (img == NULL) + return 1; - imlib_context_set_image(img->image); + imlib_context_set_image(img->image); - if(angle == 90){ - orientation = 1; - }else if(angle == -90){ - orientation = 3; - }else{ - return 1; - } + if (angle == 90) { + orientation = 1; + } + else if (angle == -90) { + orientation = 3; + } + else { + return 1; + } - imlib_image_orientate(orientation); - set_prm(img); - return 0; + imlib_image_orientate(orientation); + set_prm(img); + return 0; } -static void set_prm(IMAGE *img) +static void +set_prm(IMAGE * img) { - if(img == NULL) - return; + if (img == NULL) + return; - imlib_context_set_image(img->image); - img->data = imlib_image_get_data_for_reading_only(); - img->width = imlib_image_get_width(); - img->height = imlib_image_get_height(); + imlib_context_set_image(img->image); + img->data = imlib_image_get_data_for_reading_only(); + img->width = imlib_image_get_width(); + img->height = imlib_image_get_height(); } |