但是麻烦来了。
我使用fseek
或fread
函数移动文件指针,但是两个结果都超出我的预期。
似乎指针不是我要移动的位置。
有人可以给我一个提示吗?
#include <stdio.h>
#include <stdlib.h>
int IMAGE_WIDTH=1280;
int IMAGE_HEIGHT=800;
int size=1280*800*2;
int header=128;
int line_padding=0;
int main()
{
FILE* fd;
FILE* fd_bin;
char *temp = (char*)malloc(size);
char *dat = (char*)malloc(size);
if (!dat) {
perror("malloc");
return NULL;
}
fd = fopen("original.raw", "rb");
if (!fd) {
printf("File Read Fail...\n");
exit(1);
}
// fseek(fd, header, SEEK_SET);
fread(temp, 1, header, fd);
for(int k=0;k<IMAGE_HEIGHT;k++)
{
fread(dat, 1, IMAGE_WIDTH*2, fd);
//fseek(fd , line_padding*2, SEEK_CUR);
fread(temp, 1, line_padding*2, fd);
}
/////////////////////////////Save bin
fd_bin = fopen("output.raw", "wb");
if (!fd_bin) {
printf("File Open Fail...\n");
exit(1);
}
fwrite( dat, 1, IMAGE_WIDTH*IMAGE_HEIGHT*2, fd_bin);
fclose(fd_bin);
///////////////////////////////////////////
fclose(fd);
free(temp);
free(dat);
}