1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
/*
* Embedding standard image data into a file resources.cpp
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
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);
}
|