.bmp イメージを読み取って、データをテキスト ファイルに書き込もうとしています。コードは正常に実行されていますが、問題は、画像全体を一度に読み取ることができないため、fread()
関数を何度も呼び出さなければならないことです。これを行っている間、私のコードは最初に読み取ったデータをテキスト ファイルに繰り返し格納しています。画像全体を正しく読み取るには、どのような変更を行う必要がありますか? 以下は私のコードスニペットです。
int size = width * height;
unsigned char* data = new unsigned char[size];
filename = "image.bmp";
fname = "image_data.txt";
FILE* f = fopen(filename, "rb");
FILE *fp = fopen(fname, "w");
while(totalBytes < size)
{
readsize = fread(data, sizeof(unsigned char), size, f);
totalBytes += readsize;
for(i = 0; i < readsize; i++)
{
fprintf(fp, "%d", data[i]);
if((i % width) == 0 && i != 0)
fprintf(fp, "\n");
}
fseek(f, readsize, SEEK_SET);
readsize = 0;
}