Reputation: 6617
I want to write data into the file in binary form.
I was trying using the mentioned below
FILE *fp = fopen("binaryoutput.rgb888", "ab+");
for(int m=0; m<height; m++)
{
for (int n=0; n< width; n++)
{
temp = (pOutputImg+m*3+n*3); // here pOutputImg & temp is a pointer to a unsigned char
fprintf(fp,"%u",*temp);
}
}
fclose(fp);
I am able to get data which is strored at pOutputImg but not in binary form.
Can anyone guide me the correct step..
Thanks in advance
Upvotes: 1
Views: 356
Reputation: 1951
Replace fprintf() with fwrite().
Ex:
fwrite(temp, sizeof(*temp), 1, fp);
The whole purpose of fprintf() is to format binary data as readable ascii ... the exact opposite of what you want. fwrite() is for directly writing binary data.
Upvotes: 7
Reputation: 185862
If this is a pixmap of rgb triplets, you can write the binary data with one line:
fwrite(pOutputImg, 3, height * width, fp);
Upvotes: 2