• 大小: 705KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: C/C++
  • 标签: c++,  图片  ,base64  

资源简介

图片转为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  Dobase64\Debug\Dobase64.exe

     文件     532468  2018-03-28 10:10  Dobase64\Debug\Dobase64.ilk

     文件     650240  2018-03-28 10:10  Dobase64\Debug\Dobase64.pdb

     文件       6388  2018-03-28 10:10  Dobase64\Dobase64\Debug\BuildLog.htm

     文件        663  2018-03-27 16:39  Dobase64\Dobase64\Debug\Dobase64.exe.embed.manifest

     文件        728  2018-03-27 16:39  Dobase64\Dobase64\Debug\Dobase64.exe.embed.manifest.res

     文件        621  2018-03-28 10:10  Dobase64\Dobase64\Debug\Dobase64.exe.intermediate.manifest

     文件      37135  2018-03-27 17:53  Dobase64\Dobase64\Debug\EParkingbase64.obj

     文件      49291  2018-03-28 10:10  Dobase64\Dobase64\Debug\main1.obj

     文件         65  2018-03-28 10:10  Dobase64\Dobase64\Debug\mt.dep

     文件     240640  2018-03-28 10:10  Dobase64\Dobase64\Debug\vc90.idb

     文件     225280  2018-03-28 10:10  Dobase64\Dobase64\Debug\vc90.pdb

     文件      36923  2018-03-27 17:50  Dobase64\Dobase64\Debug\Zbase64.obj

     文件       4057  2018-03-27 17:53  Dobase64\Dobase64\Dobase64.vcproj

     文件       1427  2018-03-28 10:21  Dobase64\Dobase64\Dobase64.vcproj.SC-201708291720.Administrator.user

     文件       2712  2018-03-27 17:53  Dobase64\Dobase64\EParkingbase64.cpp

     文件        307  2018-03-27 17:52  Dobase64\Dobase64\EParkingbase64.h

     文件       1784  2018-03-28 10:10  Dobase64\Dobase64\main1.cpp

     文件     140793  2018-03-28 10:10  Dobase64\Dobase64\test.jpg

     文件    1690624  2018-03-28 16:13  Dobase64\Dobase64.ncb

     文件        890  2018-03-27 16:16  Dobase64\Dobase64.sln

    ..A..H.     33280  2018-03-28 10:21  Dobase64\Dobase64.suo

     目录          0  2018-03-28 10:10  Dobase64\Dobase64\Debug

     目录          0  2018-03-27 17:53  Dobase64\Debug

     目录          0  2018-03-29 16:10  Dobase64\Dobase64

     目录          0  2018-03-28 10:10  Dobase64

----------- ---------  ---------- -----  ----

              3710076                    26


评论

共有 条评论