#include #include #include enum { length = 9 }; static const char *parts[] = { "00.png", "01.png", "02.png", "10.png", "11.png", "12.png", "20.png", "21.png", "22.png" }; int main() { int part_sizes[length]; int i, j, c; char res_dir[] = "../resources/tucan/"; FILE * out = fopen("resources.cpp","wt"); if (out == NULL) { printf("Can not open output\n"); return 1; } fprintf(out,"unsigned char image_data[] = {\n"); for(i = 0; i < length; ++i) { char *str_copy = (char*)malloc(sizeof(res_dir) + strlen("00.png")); strcpy(str_copy, res_dir); FILE * in = fopen(strcat(str_copy, parts[i]), "rb"); if (in == NULL) { printf("Can not open input file\n"); return 1; } for(j = 0, c = fgetc(in); c != EOF; c = fgetc(in), ++j) { if (j%16 == 0) fprintf(out," "); fprintf(out,"0x%02X, ", c); if (j%16 == 15) fputs("\n", out); } part_sizes[i] = j; fclose(in); free(str_copy); } fprintf(out,"0xFF };\n\n"); fprintf(out, "int image_sizes[] = {\n"); for(int i = 0; i < length; ++i) { if (i%16 == 0) fprintf(out," "); fprintf(out,"%d, ", part_sizes[i]); if (i%16 == 15) fputs("\n", out); } fprintf(out,"0xFF };\n\n"); fclose(out); }