#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include "gwlib/gwlib.h"#include "wbmp.h"Include dependency graph for wbmp.c:

Go to the source code of this file.
Functions | |
| WBMP * | wbmp_create_empty (void) |
| void | wbmp_delete (WBMP *pic) |
| WBMP * | wbmp_create (int type, int width, int height, Octet *data, int flags) |
| int | wbmp_create_stream (WBMP *pic, Octet **stream) |
|
||||||||||||||||||||||||
|
Definition at line 94 of file wbmp.c. References data, error(), wbmp::fix_header_field, wbmp::height, wbmp::main_image, Octet, reverse_octet(), type, wbmp::type_field, WBMP, wbmp_create_empty(), and wbmp::width. 00095 {
00096 WBMP *new;
00097 int i, siz;
00098 Octet val;
00099
00100 new = wbmp_create_empty();
00101
00102 new->type_field = type;
00103 if (type == 0) {
00104 new->fix_header_field = 0x00;
00105 } else {
00106 error(0, "WBMP type %d not supported", type);
00107 return NULL;
00108 }
00109 new->width = width;
00110 new->height = height;
00111 siz = (width+7)/8 * height;
00112
00113 new->main_image = gw_malloc(siz);
00114 for(i=0; i < siz; i++) {
00115 if (flags & REVERSE) val = reverse_octet(data[i]);
00116 else val = data[i];
00117 if (flags & NEGATIVE) val = ~val;
00118 new->main_image[i] = val;
00119 }
00120 return new;
00121 }
|
Here is the call graph for this function:

|
|
Definition at line 69 of file wbmp.c. References WBMP. Referenced by wbmp_create(). 00070 {
00071 WBMP *new;
00072
00073 new = gw_malloc(sizeof(WBMP));
00074 memset(new, 0, sizeof(WBMP));
00075 return new;
00076 }
|
|
||||||||||||
|
Definition at line 127 of file wbmp.c. References debug(), error(), wbmp::height, wbmp::main_image, Octet, wbmp::type_field, WBMP, wbmp::width, and write_variable_value(). 00128 {
00129 Octet tmp_w[30], tmp_h[30];
00130 int wl, hl, pic_size;
00131
00132 wl = write_variable_value(pic->width, tmp_w);
00133 hl = write_variable_value(pic->height, tmp_h);
00134
00135 pic_size = ((pic->width+7)/8) * pic->height;
00136
00137 if (pic->type_field != 0) {
00138 error(0, "Unknown WBMP type %d, cannot convert", pic->type_field);
00139 return -1;
00140 }
00141 *stream = gw_malloc(2+wl+hl+pic_size);
00142 sprintf(*stream, "%c%c", 0x00, 0x00);
00143 memcpy(*stream+2, tmp_w, wl);
00144 memcpy(*stream+2+wl, tmp_h, hl);
00145 memcpy(*stream+2+wl+hl, pic->main_image, pic_size);
00146
00147 debug("util", 0, "picture %d x %d, stream length %d",
00148 pic->width, pic->height, 2+wl+hl+pic_size);
00149
00150 return (2+wl+hl+pic_size);
00151 }
|
Here is the call graph for this function:

|
|
Definition at line 80 of file wbmp.c. References wbmp::animated_image, wbmp::animimg_count, wbmp::ext_header_field, wbmp::main_image, and WBMP. 00081 {
00082 gw_free(pic->ext_header_field);
00083 gw_free(pic->main_image);
00084 if (pic->animated_image) {
00085 int i;
00086 for(i=0; i < pic->animimg_count; i++)
00087 gw_free(pic->animated_image[i]);
00088 gw_free(pic->animated_image);
00089 }
00090 gw_free(pic);
00091 }
|