gpt4 book ai didi

C++压缩字节数组

转载 作者:太空狗 更新时间:2023-10-29 23:34:25 26 4
gpt4 key购买 nike

大家好

我加载一组图像并生成体积数据。我将这些体积数据保存在

unsigned char *volume

数组。

现在我想将这个数组保存在一个文件中并检索。但是在保存之前我想压缩字节数组,因为数据量很大。

有什么建议吗?

提前致谢。

最佳答案

volume 在你的例子中不是一个数组。至于压缩,有关于该主题的书籍。如需快速且易于使用 C++ 的内容,请查看 boost.iostream zlib 附带的库, gzip , 和 bzip2压缩机。

为了抵消我的挑剔,这里有一个示例(更改为 char 因为 unsigned char 更加冗长)

#include <fstream>
#include <boost/iostreams/filtering_streambuf.hpp>
#include <boost/iostreams/stream.hpp>
#include <boost/iostreams/filter/bzip2.hpp>
#include <boost/iostreams/device/array.hpp>
#include <boost/iostreams/copy.hpp>
namespace io = boost::iostreams;
int main()
{
const size_t N = 1000000;
char* volume = new char[N];
std::fill_n(volume, N, 'a'); // 100,000 letters 'a'

io::stream< io::array_source > source (volume, N);

{
std::ofstream file("volume.bz2", std::ios::out | std::ios::binary);
io::filtering_streambuf<io::output> outStream;
outStream.push(io::bzip2_compressor());
outStream.push(file);
io::copy(source, outStream);
}
// at this point, volume.bz2 is written and closed. It is 48 bytes long
}

关于C++压缩字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3929487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com