From 46ace4776ee4bdb421810c492641aea987289310 Mon Sep 17 00:00:00 2001 From: Sean Fox Date: Tue, 1 Jul 2008 09:10:20 +0000 Subject: Changed several char/int types to proper types from ; corrected decoding errors for 32-bit and 16-bit bitmaps; more corrections to ico handling; added support for 'limited transparency'; added documentation to assist with future editing; cleaned up functions that read in data svn path=/branches/dynis/libnsbmp/; revision=4484 --- examples/decode_bmp.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'examples/decode_bmp.c') diff --git a/examples/decode_bmp.c b/examples/decode_bmp.c index d838f79..e09f187 100644 --- a/examples/decode_bmp.c +++ b/examples/decode_bmp.c @@ -21,12 +21,14 @@ #include #include #include +#include #include #include #include #include -#define BITMAP_BYTES_PER_PIXEL 4 +#define BYTES_PER_PIXEL 4 +#define TRANSPARENT_COLOR 0xffffffff unsigned char *load_file(const char *path, size_t *data_size); void warning(const char *context, bmp_result code); @@ -78,21 +80,21 @@ int main(int argc, char *argv[]) /* decode the image */ code = bmp_decode(&bmp); + /* code = bmp_decode_trans(&bmp, TRANSPARENT_COLOR); */ if (code != BMP_OK) { warning("bmp_decode", code); exit(1); } { - unsigned int row, col; - unsigned char *image; - image = (unsigned char *) bmp.bitmap; + uint16_t row, col; + uint8_t *image; + image = (uint8_t *) bmp.bitmap; for (row = 0; row != bmp.height; row++) { for (col = 0; col != bmp.width; col++) { - size_t z = (row * bmp.width + col) * BITMAP_BYTES_PER_PIXEL; - printf("%u %u %u ", - (unsigned char) image[z], - (unsigned char) image[z + 1], - (unsigned char) image[z + 2]); + size_t z = (row * bmp.width + col) * BYTES_PER_PIXEL; + printf("%u %u %u ", image[z], + image[z + 1], + image[z + 2]); } printf("\n"); } @@ -170,7 +172,7 @@ void warning(const char *context, bmp_result code) void *bitmap_create(int width, int height, unsigned int state) { (void) state; /* unused */ - return calloc(width * height, BITMAP_BYTES_PER_PIXEL); + return calloc(width * height, BYTES_PER_PIXEL); } @@ -200,7 +202,7 @@ unsigned char *bitmap_get_buffer(void *bitmap) size_t bitmap_get_bpp(void *bitmap) { (void) bitmap; /* unused */ - return BITMAP_BYTES_PER_PIXEL; + return BYTES_PER_PIXEL; } -- cgit v1.2.3