nuclear@0: #include nuclear@0: #include nuclear@0: #include nuclear@0: #include nuclear@0: nuclear@0: int save_image15(unsigned int *img, int x, int y, const char *fname, const char *array_name); nuclear@0: nuclear@0: int main(int argc, char **argv) nuclear@0: { nuclear@0: int i; nuclear@0: nuclear@0: if(argc < 2) { nuclear@0: fprintf(stderr, "not enough arguments\n"); nuclear@0: return -1; nuclear@0: } nuclear@0: nuclear@0: for(i=1; i> 16) & 0xff) nuclear@0: #define GET_G(pixel) (((pixel) >> 8) & 0xff) nuclear@0: #define GET_B(pixel) (((pixel) >> 0) & 0xff) nuclear@0: nuclear@0: #define PACK_COLOR15(r, g, b) ((((r) & 0x1f) << 10) | (((g) & 0x1f) << 5) | ((b) & 0x1f)) nuclear@0: nuclear@0: int save_image15(unsigned int *img, int x, int y, const char *fname, const char *array_name) nuclear@0: { nuclear@0: int i, j; nuclear@0: FILE *fp; nuclear@0: nuclear@0: if(!(fp = fopen(fname, "w"))) { nuclear@0: return -1; nuclear@0: } nuclear@0: nuclear@0: fprintf(fp, "\nconst unsigned short %s[] = {\n", array_name); nuclear@0: nuclear@0: for(j=0; j> 3; nuclear@0: unsigned short g = GET_G(*img) >> 3; nuclear@0: unsigned short b = GET_B(*img) >> 3; nuclear@0: unsigned short pixel15 = PACK_COLOR15(r, g, b); nuclear@0: fprintf(fp, "%u", pixel15); nuclear@0: if(i < x-1 || j < y-1) { nuclear@0: fprintf(fp, ", "); nuclear@0: } nuclear@0: img++; nuclear@0: } nuclear@0: fprintf(fp, "\n"); nuclear@0: } nuclear@0: nuclear@0: fprintf(fp, "};\n"); nuclear@0: nuclear@0: fclose(fp); nuclear@0: return 0; nuclear@0: }