我读了一个bmp图像并存储在字符串向量之后 将char转换为数字和二进制数:
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文件 将每个二进制数转换为char并将其存储在新文件中。
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 :(得分:0)
确保输出流也标记为二进制,否则行结尾和其他文本处理将对二进制流生效。
ofstream saveFile(path, std::ios::binary);
答案 1 :(得分:0)
您无法使用格式化输出功能将数据写入二进制格式文件。使用saveFile.write()
。