edit:The compiler is Visual C++ 2010 and this is on Windows (though I would want to avoid windows specific utilities for this)
edit2: Alf's answer seemed like Наиболее портативный метод, поэтому я быстро написал функцию для анализа файла PNG в файл TXT или заголовка, который можно прочитать как массив Unsigned CHAR . Похоже, что в этой форме он идентичен самому файлу PNG, но мой загрузчик PNG не примет массив. При загрузке его из памяти, анализатор PNG принимает (void * buffer, size_t length) < /code>, если он имеет значение. < /P>
Код, если вы хотите увидеть, но я все равно приму другие ответы, если вы думаете, что они лучше, чем этот метод: < /p>
все равно приму другие ответы: < /p>
.
Код: Выделить всё
void compileImagePNGtoBinary(char * filename, char * output){
FILE * file = fopen(filename, "rb");
FILE * out = fopen(output, "w");
unsigned char buffer[32];
size_t count;
fprintf(out, "#pragma once \n\n static unsigned char TEXT_PNG_BYTES[] = { ");
while(!feof(file)){
count = fread(buffer, 1, 32, file);
for(int n = 0; n < count; ++n){
fprintf(out, "0x%02X, ", buffer[n]);
};
};
fprintf(out, "};");
fclose(file);
fclose(out);
};
Подробнее здесь: https://stackoverflow.com/questions/728 ... executable
Мобильная версия