从字节流中提取字节

时间:2012-08-03 16:09:24

标签: c++ bitmap byte ostream ostringstream

我在C ++ CGI脚本中通过POST收到一个二进制文件,我正在使用Cgicc库来获取它的内容:

std::ofstream myfile;
myfile.open ("file.out", std::ios::in | std::ios::binary);
try
{
    cgicc::Cgicc cgi;
    cgicc::const_file_iterator file = cgi.getFile("bitmap");
    if(file != cgi.getFiles().end())
    {
        file->writeToStream(myfile);
    }
}

catch(std::exception &exception)
{
    std::cout << exception.what();
}

结果是包含字节的二进制文件。

现在,因为每个字节应该代表8位位图文件的一个像素,所以我想构建整个位图文件。为了实现这一点,我想我可以使用easyBMP库,但由于我需要逐个像素地创建图像,我需要以某种方式迭代接收到的字节。有谁知道如何实现这一目标?我能以某种方式获得std :: ostream / std :: ostrstream / std :: ostringstream的迭代器吗?

std::ostringstream stream;
file->writeToStream(stream);
//foreach byte in stream do { ... }

1 个答案:

答案 0 :(得分:1)

如果您使用std::ostringstream,则可以使用std::string函数http://cplusplus.com/reference/iostream/ostringstream/str/std::ostringstream::str获取{{1}}。此外,您可以打开文件并阅读它......