У меня есть brick.sprite. У меня есть исполняемый файл в Debain 8 "Kali Linux" с этим кодом:linux stdin, stdout pipe
#include <stdio.h>
#include <stdint.h>
#include <iostream>
/**
* To use this file, pipe a sprite of the old format into stdin, and
* redirect stdout to a second file of your chosing. The sprite header
* will be converted. This tool has no error checking and assumes a valid
* sprite header. It is provided merely for convenience.
*/
int main(int argc, char *argv[])
{
uint8_t zero = 0;
uint8_t val;
int ret;
/* Read in old width */
ret = fread(&val, sizeof(val), 1, stdin);
/* Write empty value and then new */
fwrite(&zero, sizeof(zero), 1, stdout);
fwrite(&val, sizeof(val), 1, stdout);
/* Read in old height */
ret = fread(&val, sizeof(val), 1, stdin);
\t \t
/* Write empty value and then new */
fwrite(&zero, sizeof(zero), 1, stdout);
fwrite(&val, sizeof(val), 1, stdout);
/* Straight copy of bitdepth and format */
ret = fread(&val, sizeof(val), 1, stdin);
fwrite(&val, sizeof(val), 1, stdout);
ret = fread(&val, sizeof(val), 1, stdin);
fwrite(&val, sizeof(val), 1, stdout);
/* Assuming horizontal and vertical stride of 1 */
val = 1;
fwrite(&val, sizeof(val), 1, stdout);
fwrite(&val, sizeof(val), 1, stdout);
\t
\t printf("%d\n",ret);//set to avoid weird error
/* Now just byte copy until end of stream */
while(!feof(stdin))
{
ret = fread(&val, sizeof(val), 1, stdin);
if(!feof(stdin))
{
/* Only copy out if the last read didn't make an eof */
fwrite(&val, sizeof(val), 1, stdout);
}
}
return 0;
}
для преобразования brick.sprite в новый формат. Я попробовал его со многими кодами:
//convtool is the executable
convtool grep <brick.sprite date > brick2.sprite
convtool <brick.sprite> brick2.sprite //This looks like that it goes in the right way...
convtool cat <brick.sprite> brick2.sprite
convtool 2> brick2.sprite > brick.sprite
Я не знаком с Linux, но мне нужно знать.
Спасибо за советы!
Какой тип файла 'brick.sprite'? –
Большое вам спасибо! Это файл png, преобразованный в .sprite в двоичном формате. – Hexdec