转载:http://www.cnblogs.com/jeray/p/8746976.html

转载:https://www.cnblogs.com/lujin49/p/4957742.html

转载:https://blog.csdn.net/whish1994/article/details/79894451

转载:https://blog.csdn.net/gu_wen_jie/article/details/79050287

最近在一个项目中要实现前端传递给我们客户端的是base64的图片数据流,我们需要做的就是将它转为图片并且保存起来,根据需要再将图片存储路径信息做进一步操作。

前端传过来的字符串是这样的:

  1. <img src="data:image/jpg;base64,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" />
那么这是什么呢?这是Data URI scheme。
Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。比如上面那串字符,其实是一张小图片,将这些字符复制黏贴到火狐的地址栏中并转到,就能看到它了,一张1X36的白灰png图片。
在上面的Data URI中,data表示取得数据的协定名称,image/png 是数据类型名称,base64 是数据的编码方法,逗号后面就是这个image/png文件base64编码后的数据。
 
目前,Data URI scheme支持的类型有:
data:,文本数据
data:text/plain,文本数据
data:text/html,HTML代码
data:text/html;base64,base64编码的HTML代码
data:text/css,CSS代码
data:text/css;base64,base64编码的CSS代码
data:text/javascript,Javascript代码
data:text/javascript;base64,base64编码的Javascript代码
data:image/gif;base64,base64编码的gif图片数据
data:image/png;base64,base64编码的png图片数据
data:image/jpeg;base64,base64编码的jpeg图片数据
data:image/x-icon;base64,base64编码的icon图片数据
 
base64简单地说,它把一些 8-bit 数据翻译成标准 ASCII 字符,网上有很多免费的base64 编码和解码的工具,在PHP中可以用函数base64_encode() 进行编码,如echo base64_encode(file_get_contents(‘wg.png’));
目前,IE8、Firfox、Chrome、Opera浏览器都支持这种小文件嵌入。
 举个图片的例子:
网页中一张图片可以这样显示:
  1. <img src="http://mail.163.com/images/x.png" />

也可以这样显示:

  1. <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAAA3NCSVQICAjb4U/gAAAABlBMVEX///+ZmZmOUEqyAAAAAnRSTlMA/1uRIrUAAAAJcEhZcwAACusAAArrAYKLDVoAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDkvMjAvMTIGkKG+AAAAHHR
    FWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAAB1JREFUCJljONjA8LiBoZyBwY6BQQZMAtlAkYMNAF1fBs/zPvcnAAAAAElFTkSuQmCC" />

把图像文件的内容直接写在了HTML 文件中,这样做的好处是,节省了一个HTTP 请求。坏处是浏览器不会缓存这种图像。

Base64.h

  1. #ifndef _BASE64_H_
  2. #define _BASE64_H_
  3.  
  4. #include <string>
  5. using namespace std;
  6.  
  7. class CBase64
  8. {
  9. public:
  10. public:
  11. CBase64();
  12. ~CBase64();
  13.  
  14. /*编码
  15. DataByte
  16. [in]输入的数据长度,以字节为单位
  17. */
  18. std::string Encode(const char* Data, int DataByte);
  19.  
  20. /*解码
  21. DataByte
  22. [in]输入的数据长度,以字节为单位
  23. OutByte
  24. [out]输出的数据长度,以字节为单位,请不要通过返回值计算
  25. 输出数据的长度
  26. */
  27. std::string Decode(const char* Data, int DataByte, int& OutByte);
  28.  
  29. };
  30. #endif//_BASE64_H_

Base64.cpp

  1. #include"Base64.h"
  2.  
  3. CBase64::CBase64()
  4. {
  5.  
  6. }
  7.  
  8. CBase64::~CBase64()
  9. {
  10.  
  11. }
  12.  
  13. std::string CBase64::Encode(const char* Data, int DataByte)
  14. {
  15. //编码表
  16. const char EncodeTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  17. //返回值
  18. string strEncode;
  19. unsigned char Tmp[] = { };
  20. int LineLength = ;
  21. for (int i = ; i<(int)(DataByte / ); i++)
  22. {
  23. Tmp[] = *Data++;
  24. Tmp[] = *Data++;
  25. Tmp[] = *Data++;
  26. strEncode += EncodeTable[Tmp[] >> ];
  27. strEncode += EncodeTable[((Tmp[] << ) | (Tmp[] >> )) & 0x3F];
  28. strEncode += EncodeTable[((Tmp[] << ) | (Tmp[] >> )) & 0x3F];
  29. strEncode += EncodeTable[Tmp[] & 0x3F];
  30. if (LineLength += , LineLength == ) { strEncode += "\r\n"; LineLength = ; }
  31. }
  32. //对剩余数据进行编码
  33. int Mod = DataByte % ;
  34. if (Mod == )
  35. {
  36. Tmp[] = *Data++;
  37. strEncode += EncodeTable[(Tmp[] & 0xFC) >> ];
  38. strEncode += EncodeTable[((Tmp[] & 0x03) << )];
  39. strEncode += "==";
  40. }
  41. else if (Mod == )
  42. {
  43. Tmp[] = *Data++;
  44. Tmp[] = *Data++;
  45. strEncode += EncodeTable[(Tmp[] & 0xFC) >> ];
  46. strEncode += EncodeTable[((Tmp[] & 0x03) << ) | ((Tmp[] & 0xF0) >> )];
  47. strEncode += EncodeTable[((Tmp[] & 0x0F) << )];
  48. strEncode += "=";
  49. }
  50.  
  51. return strEncode;
  52. }
  53.  
  54. std::string CBase64::Decode(const char* Data, int DataByte, int& OutByte)
  55. {
  56. //解码表
  57. const char DecodeTable[] =
  58. {
  59. , , , , , , , , , , , , , , , , , , , , , , , ,
  60. , , , , , , , , , , , , , , , , , , ,
  61. , // '+'
  62. , , ,
  63. , // '/'
  64. , , , , , , , , , , // '0'-'9'
  65. , , , , , , ,
  66. , , , , , , , , , , , , ,
  67. , , , , , , , , , , , , , // 'A'-'Z'
  68. , , , , , ,
  69. , , , , , , , , , , , , ,
  70. , , , , , , , , , , , , , // 'a'-'z'
  71. };
  72. //返回值
  73. string strDecode;
  74. int nValue;
  75. int i = ;
  76. while (i < DataByte)
  77. {
  78. if (*Data != '\r' && *Data != '\n')
  79. {
  80. nValue = DecodeTable[*Data++] << ;
  81. nValue += DecodeTable[*Data++] << ;
  82. strDecode += (nValue & 0x00FF0000) >> ;
  83. OutByte++;
  84. if (*Data != '=')
  85. {
  86. nValue += DecodeTable[*Data++] << ;
  87. strDecode += (nValue & 0x0000FF00) >> ;
  88. OutByte++;
  89. if (*Data != '=')
  90. {
  91. nValue += DecodeTable[*Data++];
  92. strDecode += nValue & 0x000000FF;
  93. OutByte++;
  94. }
  95. }
  96. i += ;
  97. }
  98. else// 回车换行,跳过
  99. {
  100. Data++;
  101. i++;
  102. }
  103. }
  104. return strDecode;
  105. }

main.cpp

  1. #include "Base64.h"
  2. #include <tchar.h>
  3. #include <windows.h>
  4. #include <iostream>
  5. using namespace std;
  6.  
  7. //以下是读写图片的调用代码:
  8. bool ReadPhotoFile(std::basic_string<TCHAR> strFileName, std::string &strData)
  9. {
  10. HANDLE hFile;
  11. hFile = CreateFile(strFileName.c_str(), GENERIC_READ, , NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
  12.  
  13. if (hFile == INVALID_HANDLE_VALUE)
  14. {
  15. return false;
  16. }
  17.  
  18. DWORD dFileSize = GetFileSize(hFile, NULL);
  19. char * pBuffer = new char[dFileSize + ];
  20.  
  21. if (pBuffer == NULL)
  22. return false;
  23.  
  24. memset(pBuffer, , dFileSize);
  25.  
  26. DWORD dReadSize();
  27. if (!ReadFile(hFile, pBuffer, dFileSize, &dReadSize, NULL))
  28. {
  29. delete[]pBuffer;
  30. CloseHandle(hFile);
  31. return false;
  32. }
  33.  
  34. CBase64 base64;
  35. strData = "";
  36. strData = base64.Encode((const char*)pBuffer, dReadSize);
  37.  
  38. delete[]pBuffer;
  39. CloseHandle(hFile);
  40. return true;
  41. }
  42.  
  43. bool WritePhotoFile(std::basic_string<TCHAR> strFileName, std::string &strData)
  44. {
  45. HANDLE hFile;
  46. hFile = CreateFile(strFileName.c_str(), GENERIC_WRITE, , NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
  47.  
  48. if (hFile == INVALID_HANDLE_VALUE)
  49. {
  50. return false;
  51. }
  52.  
  53. CBase64 base64;
  54. int datalen();
  55. DWORD dwritelen();
  56. std::string strdcode = base64.Decode(strData.data(), strData.size(), datalen);
  57. if (!WriteFile(hFile, strdcode.data(), datalen, &dwritelen, NULL))
  58. {
  59. CloseHandle(hFile);
  60. return false;
  61. }
  62. CloseHandle(hFile);
  63. return true;
  64. }int main()
  65. {
  66. wstring path = L"C:\\Users\\Administrator\\Desktop\\test.jpg";
  67. string data;
  68. ReadPhotoFile(path, data);
  69.  
  70. wstring strfilename = L"C:\\Users\\Administrator\\Desktop\\123.jpg";
  71.  
  72. WritePhotoFile(strfilename, data);
  73.  
  74. for (int i = ; i < ;i++)
  75. {
  76. for (int j = ; j < ;j++)
  77. {
  78. if (j == )
  79. {
  80.  
  81. break;
  82. }
  83. cout << "j=" << j << endl;
  84. }
  85.  
  86. cout << "i=" << i << endl;
  87. }
  88.  
  89. return ;
  90. }

C++读写图片数据转成Base64格式的更多相关文章

  1. C++读写图片数据转成Base64格式的一种方法

    最近在一个项目中要实现在客户端和服务端之间传送图片文件的功能,采用了C++语言读写图片转化成Base64格式进行传输.具体代码如下: //++Base64.h #pragma once class C ...

  2. 将图片文件转成BASE64格式

    html5Reader (file, item) { const reader = new FileReader() reader.onload = (e) => { this.$set(ite ...

  3. js如何将选中图片文件转换成Base64字符串?

    如何将input type="file"选中的文件转换成Base64的字符串呢? 1.首先了解一下为什么要把图片文件转换成Base64的字符串 在常规的web开发过程中,大部分上传 ...

  4. CAFFE学习笔记(四)将自己的jpg数据转成lmdb格式

    1 引言 1-1 以example_mnist为例,如何加载属于自己的测试集? 首先抛出一个问题:在example_mnist这个例子中,测试集是人家给好了的.那么如果我们想自己试着手写几个数字然后验 ...

  5. 使用gfortran将数据写成Grads格式的代码示例

    使用gfortran将数据写成Grads格式的代码示例: !-----'Fortran4Grads.f90' program Fortran4Grads implicit none integer,p ...

  6. js 将图片文件转换成base64

      1.情景展示 在JavaScript中,如何使用图片文件转换成base64? 2.解决方案 /** * 网络图像文件转Base64 * @param img dom对象 */ function g ...

  7. 图片文件转换成Base64编码实现ajax提交图片

    //上传头像图片 function uploadHead(imgPath) { console.log("imgPath = " + imgPath); var image = n ...

  8. php 将图片文件转成base64编码的方法

    php 将图片文件转成base64编码的方法<pre><?php /** 文件转base64输出 * @param String $file 文件路径 * @return Strin ...

  9. 利用python将excel数据解析成json格式

    利用python将excel数据解析成json格式 转成json方便项目中用post请求推送数据自定义数据,也方便测试: import xlrdimport jsonimport requests d ...

随机推荐

  1. Ultimate Guide to WeChat for Business 2019

    Ultimate Guide to WeChat for Business 2019 By Iaroslav Kudritskiy (source :https://rocketbots.io/blo ...

  2. laravel读取excel

    $filePath = 'storage/exports/成员信息.xls'; Excel::load($filePath, function ($reader) {// $data = $reade ...

  3. 抓包分析、多线程爬虫及xpath学习

    1.抓包分析 1.1 Fiddler安装及基本操作 由于很多网站采用的是HTTPS协议,而fiddler默认不支持HTTPS,先通过设置使fiddler能抓取HTTPS网站,过程可参考(https:/ ...

  4. LDAP与实现

    LDAP是什么? LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的,但是简单多了并且可以 ...

  5. bootstrap-treeview树形图参数详解

    哈哈 找了半天找到了,需要的可以去看看! 直接放上博客链接:https://blog.csdn.net/hailangtuteng/article/details/80842730

  6. springcloud第二步:发布服务提供者

    创建项目service-member Maven依赖 <parent> <groupId>org.springframework.boot</groupId> &l ...

  7. 使用charles过滤网络请求

    1.对网络请求进行过滤,只监控向指定目录服务器上发送的请求 有以下方法: (1)在Structure视图或者Sequence视图的Filter 栏中填入需要过滤出来的关键字(适合临时性封包过滤) 或者 ...

  8. 关于映射路径@ReuqestMapping的总结

    何谓映射路径呢? 映射路径,就是匹配请求路径和执行方法关系的路径 基于注解的映射路径可以忽略前后缀,如: @RequestMapping(value="/say.do") @Req ...

  9. 学号 20175201张驰 《Java程序设计》第7周学习总结

    学号 20175201张驰 <Java程序设计>第7周学习总结 教材学习内容总结 第八章 String类能有效地处理字符序列信息,它的常用方法有: public int length()可 ...

  10. 正则re

    1.简介 其实re在基本模块里已经介绍过,但是在爬虫中re是非常重要的,所以在这里再进行详细描述. re在解析html内容时是效率最高的,但是也是最难的,一般来说,都是结合xpath和re使用,这样解 ...