hATEmATH的网上田园

喂马 劈柴 做一个幸福的人
<2008年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011
公告
  • ◇ 欢迎来到这里的每一位朋友。

    ◇ 无需注册即可评论或留言。

    ◇ 文章无"转载(ZT)"字样均为原创。

    ◇ "随笔分类"中包含我的所有随笔

留言簿(13)

随笔分类

随笔档案

文章分类

文章档案

相册

工具网站

搜索

最新评论

阅读排行榜

评论排行榜

 
VC知识库BLOG   首页  新随笔  联系  聚合  登录 
  随笔-127 文章-20 评论-454 Trackbacks-0

    BASE64这种编码挺有意思的,可以把每3个(二进制)字节编码成以ASCII码表示的4个字节。可能会有人觉得奇怪,网页保存为mht格式后,明明只有一个文本文件,可是用浏览器打开后居然还有图片。其实,用记事本打开这些mht文件,可以看到一堆堆的”乱码“,这往往就是BASE64编码后的图片了。由于最近项目用到这个东西,于是去CSDN上下了个BASE64编解码的C++类。因为对效率没有特别的要求,所以只是用小图片试了一下,能用。

    该类使用起来很简单:
int main(int argc, char* argv[])
{
    
string strJpg;
    Base64 bs;

    read_from_binary_file(strJpg); // 读取文件

    
string strEncode = bs.base64_encode(strJpg); // 编码
    
string strDecode = bs.base64_decode(strEncode); //解码

    write_to_binary_file(strDecode); // 写入文件

    printf(
"%s %s ", strEncode.c_str(), strDecode.c_str()); // 在控制台打印
    
return 0;
}



例子(源码+demo)下载:
http://blog.vckbase.com/Files/HateMath/base64_codec_jpg_test.rar


后补:上面那个理论上只适合文本文件,对于二进制文件,有时是不行的。这个例子更具有通用性:
http://blog.vckbase.com/Files/HateMath/test_base64_bmp.rar

posted on 2008-09-01 09:48 hATEmATH的网上田园 阅读(1188) 评论(4)  编辑 收藏
Comments
  • # re: BASE64编解码JPG图片的例子(C++ VS2005)
    sjdev
    Posted @ 2008-09-01 22:11
    恩。
  • # re: BASE64编解码JPG图片的例子(C++ VS2005)
    玻璃小屋
    Posted @ 2008-09-02 10:16

    电子邮件都是这个编码~
  • # re: BASE64编解码JPG图片的例子(C++ VS2005)
    绞肉机配件
    Posted @ 2008-09-10 02:16
    不错,呵呵。
  • # re: BASE64编解码JPG图片的例子(C++ VS2005)
    sjdev
    Posted @ 2008-09-27 22:00
    这两天接触一些svg方面的东西,里面图片也是base64.
标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]