c ++将png转换为base64

Rah*_*yem 5 c++ base64 opencv meteor

我发现将 png 文件转换为 base64,但它要求从文件流中读取,例如:

ostringstream sout;
istringstream sin;

// this is the object we will use to do the base64 encoding
base64 base64_coder;



// now base64 encode the compressed data
base64_coder.encode(sin,sout);
Run Code Online (Sandbox Code Playgroud)

我在opencv中有png转换为:

                imencode(".png", im, buf);
Run Code Online (Sandbox Code Playgroud)

当我想转换时

    base64_coder.encode(buf,sout);
Run Code Online (Sandbox Code Playgroud)

它问流..

我的 C++ 知识有限,因此感谢任何帮助。

这样做的目的:

我需要将 png 图像写入到 mongodb 可以被meteorjs 使用。所以他们要求 base64 编码。图片。

谢谢

编辑:我是 Cv::Mat 。对象。我正在将其转换为 png 。buf 包括 png。

Rah*_*yem 0

我发现 :

auto base64_png = reinterpret_cast<const unsigned char*>(buf.data());
                std::string encoded_png = "data:image/jpeg;base64,"+base64_encode(base64_png,buf.size());
Run Code Online (Sandbox Code Playgroud)

标题位于:github

它解决了我的问题