我正在使用Java编写隐写程序,但是我得到了建议,说我可以用C程序更好地解决这个任务。我想尝试一下,但是我的C编程非常糟糕。现在我想读取一个gif文件,并找到用作图像分隔符的字节(从GIF格式中为0x2c)。
我尝试编写这个程序:
我尝试编写这个程序:
int main(int argc, char *argv[])
{
FILE *fileptr;
char *buffer;
long filelen = 0;
fileptr = fopen("D:/test.gif", "rb"); // Open the file in binary mode
fseek(fileptr, 0, SEEK_END); // Jump to the end of the file
filelen = ftell(fileptr); // Get the current byte offset in the file
rewind(fileptr); // Jump back to the beginning of the file
buffer = (char *)malloc((filelen+1)*sizeof(char)); // Enough memory for file + \0
fread(buffer, filelen, 1, fileptr); // Read in the entire file
fclose(fileptr); // Close the file
int i = 0;
for(i = 0; buffer[ i ]; i++)
{
if(buffer[i] == 0x2c)
{
printf("Next image");
}
}
return 0;
}
有人能给我建议如何修复我的循环吗?
0x2C
或0x00
也可以是图像中的数据字节。 - Mohit Jainbuffer[i]
为零,它就会退出;这是你想要的吗? - Politank-Zfor(i = 0; i<filelen; i++)
吗? - ryyker0x2c
是用作图像分隔符的字节。我怎么才能识别它是图像分隔符还是普通字节呢? - Sk1X1buffer[i] == 0x2c
。从你的话来看,这似乎是你区分图像分隔符和普通字节的方式。 - Politank-Z