C++base64转图片
以下是C++代码示例,将base64字符串转换为图片:
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <vector>
#include <cstdint>
#include <algorithm>
#include <iterator>
// base64解码函数
std::vector<uint8_t> base64_decode(const std::string& input)
{
static const std::string base64_chars =
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
"0123456789+/";
std::vector<uint8_t> output;
size_t i = 0;
while (i < input.size())
{
char b[4] = { 0 };
size_t j = 0;
// 读取4个字符
while (j < 4 && i < input.size())
{
b[j++] = input[i++];
}
// 对4个字符进行解码
uint8_t d[3] = { 0 };
for (size_t k = 0; k < 4; k++)
{
if (b[k] == '=')
{
d[k] = 0;
}
else
{
auto it = std::find(base64_chars.begin(), base64_chars.end(), b[k]);
if (it != base64_chars.end())
{
size_t index = std::distance(base64_chars.begin(), it);
d[k] = static_cast<uint8_t>(index);
}
}
}
// 将3个解码后的字符存储到输出数组中
output.push_back((d[0] << 2) | (d[1] >> 4));
if (b[2] != '=')
{
output.push_back((d[1] << 4) | (d[2] >> 2));
}
if (b[3] != '=')
{
output.push_back((d[2] << 6) | d[3]);
}
}
return output;
}
int main()
{
// 读取base64字符串
std::string base64_str = "iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAXdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMjHx9soAAAAzklEQVRIx+2T0Q2AMAwE/n3q/3HcBdQMIRcQI9W7q8rHrNnLJrRvFyWY8p5a5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x5p5J5x
原文地址: https://www.cveoy.top/t/topic/dGBT 著作权归作者所有。请勿转载和采集!