我发现conver 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);
我在opencv转换为png:
imencode(".png", im, buf);
当我想要转换
时 base64_coder.encode(buf,sout);
它问流..
我的c ++知识有限,所以任何帮助都会受到赞赏。
目的:
我需要将png图像写入meteorjs可以使用的mongodb。所以他们要求base64编码。图像。
THX
编辑:我是Cv :: Mat。 OBJ。我正在将它转换为png。 buf包括png。
答案 0 :(得分: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());
标题:github
它解决了我的问题
答案 1 :(得分:0)
对我有用的东西
将https://github.com/ReneNyffenegger/cpp-base64中的.cpp和.h文件添加到了我的项目中;
string encoded_png;
Mat img; // Load an image here
vector<uchar> buf;
cv::imencode(".png", img, buf);
auto base64_png = reinterpret_cast<const unsigned char*>(buf.data());
encoded_png = "data:image/jpeg;base64," + base64_encode(base64_png, buf.size());
encoded_png
现在包含base64字符串,可以将其解码以获取原始图像。