Файл в двоичном виде - PullRequest
       9

Файл в двоичном виде

1 голос
/ 28 марта 2010

Я хочу записать данные в файл в двоичном виде.

Я пытался использовать нижеприведенное

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);

Я могу получить данные, обработанные в pOutputImg, но не в двоичном виде.

Может ли кто-нибудь направить меня на правильный шаг ..

Заранее спасибо

Ответы [ 2 ]

7 голосов
/ 28 марта 2010

Замените fprintf () на fwrite ().

Ex:

fwrite(temp, sizeof(*temp), 1, fp);

Цель fprintf () - отформатировать двоичные данные как читаемые ascii ... полная противоположность того, что вы хотите. Функция fwrite () предназначена для прямой записи двоичных данных.

2 голосов
/ 28 марта 2010

Если это растровое изображение тройки rgb, вы можете записать двоичные данные одной строкой:

fwrite(pOutputImg, 3, height * width, fp);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...