diff options
author | Greg White <gwhite@rockbox.org> | 2007-01-17 18:30:04 +0000 |
---|---|---|
committer | Greg White <gwhite@rockbox.org> | 2007-01-17 18:30:04 +0000 |
commit | b3c66f5d74a08839b2fffe1ad98ce651bde1bb24 (patch) | |
tree | 46f67d9a483448960b207a9d95549843f92d5857 | |
parent | c64684887ab49749326e2bab61df431a35ed7272 (diff) | |
download | rockbox-b3c66f5d74a08839b2fffe1ad98ce651bde1bb24.tar.gz rockbox-b3c66f5d74a08839b2fffe1ad98ce651bde1bb24.zip |
Add raw file generation
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12048 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | tools/bmp2rb.c | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/tools/bmp2rb.c b/tools/bmp2rb.c index aa23d45830..1d49dd5bcf 100644 --- a/tools/bmp2rb.c +++ b/tools/bmp2rb.c @@ -497,6 +497,27 @@ void generate_c_source(char *id, char* header_dir, int width, int height, fprintf(f, "\n};\n"); } +void generate_raw_file(char *id, char* header_dir, int width, int height, + const unsigned short *t_bitmap, int t_width, + int t_height, int t_depth) +{ + FILE *f; + int i, a; + + f = stdout; + + for (i = 0; i < t_height; i++) + { + for (a = 0; a < t_width; a++) + { + if (t_depth <= 8) + fwrite(&t_bitmap[i * t_width + a], 1, 1, f); + else + fwrite(&t_bitmap[i * t_width + a], 2, 1, f); + } + } +} + /**************************************************************************** * generate_ascii() * @@ -527,6 +548,7 @@ void print_usage(void) "\t-i <id> Bitmap name (default is filename without extension)\n" "\t-h <dir> Create header file in <dir>/<id>.h\n" "\t-a Show ascii picture of bitmap\n" + "\t-r Generate RAW file\n" "\t-f <n> Generate destination format n, default = 0\n" "\t 0 Archos recorder, Ondio, Iriver H1x0 mono\n" "\t 1 Archos player graphics library\n" @@ -552,6 +574,7 @@ int main(int argc, char **argv) unsigned short *t_bitmap = NULL; int width, height; int t_width, t_height, t_depth; + bool raw = false; for (i = 1;i < argc;i++) @@ -598,6 +621,10 @@ int main(int argc, char **argv) ascii = true; break; + case 'r': /* Ascii art */ + raw = true; + break; + case 'f': if (argv[i][2]) { @@ -664,11 +691,12 @@ int main(int argc, char **argv) } else { - if (transform_bitmap(bitmap, width, height, format, &t_bitmap, - &t_width, &t_height, &t_depth)) + if (transform_bitmap(bitmap, width, height, format, &t_bitmap, &t_width, &t_height, &t_depth)) exit(1); - generate_c_source(id, header_dir, width, height, t_bitmap, - t_width, t_height, t_depth); + if(raw) + generate_raw_file(id, header_dir, width, height, t_bitmap, t_width, t_height, t_depth); + else + generate_c_source(id, header_dir, width, height, t_bitmap, t_width, t_height, t_depth); } return 0; |