将浮点缓冲区写入二进制文件
write a float buffer to a binary file
- 我有一个带有 ppm 文件数据的浮点缓冲区。缓冲区[0][0]是第一个元素,缓冲区[3*宽度*高度][0]是数据的最后一个元素。
- 缓冲区有这样的元素。 第一个 = 117 第二个 = 135 第三个 = 122。它是红色,绿色和蓝色。
- 关键是将这些数据写入二进制文件!
我试试这个,getHeight() 返回高度和 getWidth() 数据的宽度。
ofstream output(filename, ios::out | ios::binary);
output.write((char *)buffer, img.getHeight() * img.getWidth() * 3);
我也试试这个,对于 i=0 到 i=3*高度*宽度
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;
}
相关文章:
- 正在读取二进制文件(is_open)
- 在C++中将类(带有Vector成员)保存为二进制文件
- 如何从二进制文件中读取字符串
- 保存/加载大量短数组到二进制文件
- 从二进制文件中读取整数数组
- Android 在编译二进制文件时重建静态库
- 在 C++ 中将双精度变量写入二进制文件
- clang 的 libFuzzer 可以在同一二进制文件中测试超过 1 个 API 吗?
- 将整个二进制文件读入缓冲区,然后以特定格式解析
- 使用平面缓冲区读取以前写入的二进制文件的数据
- 将浮点缓冲区写入二进制文件
- C++:使用std::ifstream读取二进制文件后删除缓冲区/指针时发生访问冲突
- C++.将二进制文件读入缓冲区后,如何以十六进制显示缓冲区
- 在缓冲区中加载块的大二进制文件中搜索
- 使用 ifstream 剂量读取大型二进制文件不会填充字符缓冲区C++
- 协议缓冲区问题,多个序列化成一个二进制文件
- C++:将读取的二进制文件存储到缓冲区中
- 是否有可能在Android中通过编译二进制文件生成本地缓冲区溢出来获得根访问权限?
- 将二进制文件缓冲区的块读取为不同类型的
- 将多个消息存储在一个协议缓冲区二进制文件中