#define _INCLUDE_XOPEN_SOURCE #include #include #include "pict.h" main ( int argc, char *argv[] ) { Pict pict; char ft_name[256],bm_name[256],*dot; int w,h,size,size1; unsigned char *data; int i,j; FILE *bmf; int b,shift; if (argc < 2) { printf("Uso: %s pict_8\n",argv[0]); exit(1); } pict = pict_read_pict(argv[1]); strcpy(bm_name,argv[1]); dot = strrchr(bm_name,'.'); *dot = '\0'; strcpy(ft_name,bm_name); strcat(bm_name,".bm"); bmf = fopen(bm_name,"w"); w = pict_width(pict); h = pict_height(pict); size = h*w; size1 = size-1; fprintf(bmf,"#define %s_width %d\n",ft_name,w); fprintf(bmf,"#define %s_height %d\n",ft_name,h); fprintf(bmf,"static char %s_bits[] = {\n ",ft_name); data = pict->pixels; b = 0; shift = 0; for (i=0; i>7)<<(shift++); if (i%w == w-1) { b <<= 8-shift; shift = 8; } if (shift == 8) { fprintf(bmf,"0x%2.2x%s%s",b, (i==size1 ? "\n" : ", "), (i%96==95 ? "\n " : "")); b = 0; shift = 0; } } fprintf(bmf,"\t};\n"); fclose(bmf); }