back to scratko.xyz
aboutsummaryrefslogtreecommitdiff
path: root/image_converter/converter.c
diff options
context:
space:
mode:
Diffstat (limited to 'image_converter/converter.c')
-rw-r--r--image_converter/converter.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/image_converter/converter.c b/image_converter/converter.c
new file mode 100644
index 0000000..4252e71
--- /dev/null
+++ b/image_converter/converter.c
@@ -0,0 +1,52 @@
+#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);
+}