首先,非常感谢帮助我并提供帮助。
我在.bin(二进制文件)中写入一个图像矩阵。代码是:
QString outputFilename = QFileDialog::getSaveFileName(this, "BIN", "/home", "files BIN (*.bin)");
std::string output_file_name = outputFilename.toStdString();
output_file_name += ".bin";
std::ofstream myFile (output_file_name.c_str(), std::ios::out | std::ios::binary);
for(int i=0;i<img.width();++i){
for(int j=0;j<img.height();++j){
myFile.write (reinterpret_cast<const char *> (&matrix[i][j]), sizeof(int));
}
}
myFile.close();
现在我想读这个.bin来写一个矩阵,所以反转过程。 有什么想法吗?
非常感谢!
答案 0 :(得分:0)
对于文件操作,确切的数据大小很重要,因此请考虑将matrix
定义为固定宽度的整数:http://doc.qt.io/qt-4.8/datastreamformat.html。确切类型取决于图像数据(每像素位数)格式 - http://www.willamette.edu/~gorr/classes/GeneralGraphics/imageFormats/。
要阅读,只需使用read
功能:
std::ifstream myFile (input_file_name.c_str(), std::ios::out | std::ios::binary);
if(myFile)
{
for(int i=0;i<img.width();++i){
for(int j=0;j<img.height();++j){
myFile.read ((char*) (&matrix[i][j]), sizeof(int));
}
}
}