2013-03-20 3 views
0

Я прочитал BMP изображение и магазин в вектор строк после преобразования полукокса в номер и двоичного числа:Написать двоичное число в формате * .bmp

typedef unsigned char BYTE; 
std::streampos fileSize; 
std::vector<BYTE> readFile(const char* filename) 
{ 
    // open the file: 

    std::ifstream file(filename, std::ios::binary); 

    // get its size: 
    file.seekg(0, std::ios::end); 
    fileSize = file.tellg(); 
    file.seekg(0, std::ios::beg); 

    // read the data: 
    std::vector<BYTE> fileData(fileSize); 
    file.read((char*) &fileData[0], fileSize); 
    return fileData; 
} 

Это хорошо сейчас, но я хочу переписать bmp после преобразования каждого двоичного числа в символ и сохранить его в новом файле.

ofstream saveFile(path); 
int i=0; string str=""; 
while(i<binary.size()) //the binary_size is a string that contain all binary number of bmp 
    { 
    str=BinartToInt(binary[i]);//BinartToInt is a function that convert 8bit binary to number 
    saveFile <<str; 
    i++; 
    } 

saveFile.close(); 

Как преобразовать векторную двоичную строку в BMP?

ответ

0

Убедитесь, что выходной поток отмечен как двоичный файл, в противном случае окончания строки и другие текстовые обработки будут действовать на ваш двоичный поток.

ofstream saveFile(path, std::ios::binary); 
0

Вы не можете использовать форматированные выходные функции для записи данных в файлы двоичного формата. Используйте saveFile.write().

Смежные вопросы