图片的base64编码,形如:data:image/png:base64,IVBORw0kg……
其中,有一个非常关键的符号,那就是逗号,就是base64,这里的逗号,逗号前面是图像的类型的信息,逗号的后面那一大串,才是图片的有效的编码信息。
现在的问题是,如何从base64编码中把图像的有效的编码分割出来,使用的方法当然是通过逗号将其分割开来。
在c++里面,要想实现分割,没那么容易,因为c++根本就没有这样的函数,所以,想实现这种功能,得自己构造函数实现此功能。
一、头文件
#include <sstream>
必须引入如上的头文件。
二、自定义函数代码
//字符串分割的函数
vector<string> mystrsplit(const string& str, const char pattern)
{
vector<string> res;
stringstream input(str); //读取str到字符串流中
string temp;
//使用getline函数从字符串流中读取,遇到分隔符时停止,和从cin中读取类似
//注意,getline默认是可以读取空格的
while (getline(input, temp, pattern))
{
res.push_back(temp);
}
return res;
}
注意哦,上述函数的功能是:通过分割符进行分割,返回数组形式的数据。还有,可以使用多个分割符。这里相当方便。
三、使用方法
char fgf[]=",";//这里可用使用多个分割符哦
string MyOcrResult = "";
MyOcrResult = MyBase64Ocr(mystrsplit(picbase64,*fgf)[1]);//获取图片base64码逗号之后的有效的编码