繁体   English   中英

将浮动缓冲区写入二进制文件

[英]write a float buffer to a binary file

  • 我有一个带有ppm文件数据的浮动缓冲区。 缓冲区[0] [0]是第一个元素,缓冲区[3 * width * height] [0]是数据的最后一个元素。
  • 缓冲区具有这样的元素。 1st = 117 2st = 135 3st =122。它是红色,绿色和蓝色。
  • 关键是将这些数据写入二进制文件!

我尝试这样做,getHeight()返回数据的Height和getWidth()的宽度。

ofstream output(filename, ios::out | ios::binary);  
output.write((char *)buffer, img.getHeight() * img.getWidth() * 3);

我也尝试这个,因为i = 0到i = 3 * height * width

fp = fopen(filename, "wb");
fwrite(reinterpret_cast<char*>(&buffer[i][0]), 1, 3*height*width, fp);

浮点数每个为4个字节。 fwrite()不知道您要编写的类型,因此对于大小,还需要乘以每个元素的大小。

fwrite(reinterpret_cast<char*>(&buffer[i][0]), 1, 3*height*width * sizeof(float), fp);
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;

int main() {
     ofstream out("blah.txt");
     float val = 10.0f;

     out << fixed << setprecision(5) << val << endl;
     out.close();
     return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM