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 ビット ビットマップ ファイルの 1 ピクセルを表す必要があるため、ビットマップ ファイル全体を構築したいと考えています。これを実現するには、 easyBMPライブラリを使用できると思いますが、画像をピクセル単位で作成する必要があるため、受信したバイトを何らかの方法で反復処理する必要があります。これを達成する方法を知っている人はいますか?どうにかして std::ostream / std::ostrstream / std::ostringstream のイテレータを取得できますか?
std::ostringstream stream;
file->writeToStream(stream);
//foreach byte in stream do { ... }