资源简介
图片转为base64编码,base64编码保存为图片。代码内容借鉴了网上的转换类。图片转为base64编码,base64编码保存为图片。代码内容借鉴了网上的转换类。
代码片段和文件信息
#include “EParkingbase64.h“
const std::string base64_chars =“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/“;
bool CEParkingbase64::Isbase64(const char c)
{
return (isalnum(c) || (c == ‘+‘) || (c == ‘/‘));
}
std::string CEParkingbase64::base64Encode(const char * bytes_to_encode unsigned int in_len)
{
std::string ret;
int i = 0;
int j = 0;
unsigned char char_array_3[3];
unsigned char char_array_4[4];
while (in_len--)
{
char_array_3[i++] = *(bytes_to_encode++);
if(i == 3)
{
char_array_4[0] = (char_array_3[0] & 0xfc) >> 2;
char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4);
char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6);
char_array_4[3] = char_array_3[2] & 0x3f;
for(i = 0; (i <4) ; i++)
{
ret += base64_chars[char_array_4[i]];
}
i = 0;
}
}
if(i)
{
for(j = i; j < 3; j++)
{
char_array_3[j] = ‘\0‘;
}
char_array_4[0] = (char_array_3[0] & 0xfc) >> 2;
char_array_4[1] = ((char_array_3[0] & 0x03) << 4) + ((char_array_3[1] & 0xf0) >> 4);
char_array_4[2] = ((char_array_3[1] & 0x0f) << 2) + ((char_array_3[2] & 0xc0) >> 6);
char_array_4[3] = char_array_3[2] & 0x3f;
for(j = 0; (j < i + 1); j++)
{
ret += base64_chars[char_array_4[j]];
}
while((i++ < 3))
{
ret += ‘=‘;
}
}
return ret;
}
std::string CEParkingbase64::base64Decode(std::string const & encoded_string)
{
int in_len = (int) encoded_string.size();
int i = 0;
int j = 0;
int in_ = 0;
unsigned char char_array_4[4] char_array_3[3];
std::string ret;
while (in_len-- && ( encoded_string[in_] != ‘=‘) && Isbase64(encoded_string[in_])) {
char_array_4[i++] = encoded_string[in_]; in_++;
if (i ==4) {
for (i = 0; i <4; i++)
char_array_4[i] = base64_chars.find(char_array_4[i]);
char_array_3[0] = (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4);
char_array_3[1] = ((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2);
char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3];
for (i = 0; (i < 3); i++)
ret += char_array_3[i];
i = 0;
}
}
if (i) {
for (j = i; j <4; j++)
char_array_4[j] = 0;
for (j = 0; j <4; j++)
char_array_4[j] = base64_chars.find(char_array_4[j]);
char_array_3[0] = (char_array_4[0] << 2) + ((char_array_4[1] & 0x30) >> 4);
char_array_3[1] = ((char_array_4[1] & 0xf) << 4) + ((char_array_4[2] & 0x3c) >> 2);
char_array_3[2] = ((char_array_4[2] & 0x3) << 6) + char_array_4[3];
for (j = 0; (j < i - 1); j++) ret += char_array_3[j];
}
return ret;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 53760 2018-03-28 10:10 Doba
文件 532468 2018-03-28 10:10 Doba
文件 650240 2018-03-28 10:10 Doba
文件 6388 2018-03-28 10:10 Doba
文件 663 2018-03-27 16:39 Doba
文件 728 2018-03-27 16:39 Doba
文件 621 2018-03-28 10:10 Doba
文件 37135 2018-03-27 17:53 Doba
文件 49291 2018-03-28 10:10 Doba
文件 65 2018-03-28 10:10 Doba
文件 240640 2018-03-28 10:10 Doba
文件 225280 2018-03-28 10:10 Doba
文件 36923 2018-03-27 17:50 Doba
文件 4057 2018-03-27 17:53 Doba
文件 1427 2018-03-28 10:21 Doba
文件 2712 2018-03-27 17:53 Doba
文件 307 2018-03-27 17:52 Doba
文件 1784 2018-03-28 10:10 Doba
文件 140793 2018-03-28 10:10 Doba
文件 1690624 2018-03-28 16:13 Doba
文件 890 2018-03-27 16:16 Doba
..A..H. 33280 2018-03-28 10:21 Doba
目录 0 2018-03-28 10:10 Doba
目录 0 2018-03-27 17:53 Doba
目录 0 2018-03-29 16:10 Doba
目录 0 2018-03-28 10:10 Doba
----------- --------- ---------- ----- ----
3710076 26
- 上一篇:C语言宿舍管理系统
- 下一篇:Camshift Kalman目标跟踪算法
相关资源
- MFC 用SOCKET实现图片分包传送和接收并
- VC++ 实现FTP客户端与服务器
- 随机迷宫生成迷宫自动寻路软件VS20
- VC 2015 MFC 图片列表ListCtrl
- rrt实现图片搜索.zip
- 在mfc中picture控件中显示Mat图片
- OpenCv实现两个图片的相似度
- MFC VS2010 图片控件+滚动条
- Retinex算法,C++,opencv
- JPEG图片EXIF信息提取及缩略图显示VC
- 用C++,QT画分形图
- c#通过dll读取opencv里的mat图片
- 双目保存图片一根线输出两幅图像
- VC/MFC实现简单的Http服务器可访问图片
- mysql 将图片以二进制格式存储到数据
- C++ MFC 放大和缩小图片源码
- VC MFC图片获取代码.rar
- GPS卫星位置的计算
- 人工蜂群算法源代码c++,matlab
- 图片浏览器实现和图像编辑器实现源
- MFC GDI+缩放图片
- C++显示网络图片
- C语言计算图片直方图
- 视频转图片(opencv)
- directx实现正方体图片映射
- opencv:视频图片相互转换程序
- VC++图片控件(Picture Control)显示资源
- ffmpeg视频生成jpg图片
- 图片位深度转换
- MFC图片操作(PRO5_PNGDlg.cpp)
评论
共有 条评论