常见的html中或css中图片的src赋值为data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHhJREFUeNo8zjsOxCAMBFB/ KEAUFFR0Cbng3nQPw68ArZdAlOZppPFIBhH5EAB8b+Tlt9MYQ6i1BuqFaq1CKSVcxZ2Acs6406KUgpt5/ LCKuVgz5BDCSb13ZO99ZOdcZGvt4mJjzMVKqcha68iIePB86GAiOv8CDADlIUQBs7MD3wAAAABJRU5ErkJggg%3D%3D这样的代码,这是Data URI scheme,Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。比如上面那串字符,其实是一张小图片,将这些字符复制黏贴到浏览器的的地址栏中并转到,就能看到它了,一张1X36的白灰png图片;
 
java中相互转换方法:
依赖jar包为:commons-codec-1.3.jar(加密用)
 
 1 /**
 2      * 将base64的图片转换为本地文件
 3      * @param imgStr base64的图片码
 4      * @param path 存储路径
 5      * @return
 6      */
 7      public static  boolean generateImage(String imgStr, String path) {
 8          if (imgStr == null){
 9              return false;
10          }
11             
12          BASE64Decoder decoder = new BASE64Decoder();
13          try {
14             // 解密
15              byte[] b = decoder.decodeBuffer(imgStr);
16             // 处理数据
17              for (int i = 0; i < b.length; ++i) {
18                  if (b[i] < 0) {
19                      b[i] += 256;
20                  }
21               }
22              OutputStream out = new FileOutputStream(path);
23              out.write(b);
24              out.flush();
25              out.close();
26              return true;
27          } catch (Exception e) {
28                 return false;
29          }
30      }
31      
32      /**
33       * 将图片转为base64字符串
34       * @param imgFile 图片路径
35       * @return
36       */
37      public static String getImgStr(String imgFile){
38         //将图片文件转化为字节数组字符串,并对其进行Base64编码处理
39          InputStream in = null;
40          byte[] data = null;
41          try {
42              in = new FileInputStream(imgFile);
43              data = new byte[in.available()];
44              in.read(data);
45              in.close();
46         } catch (Exception e) {
47             // TODO: handle exception
48             e.printStackTrace();
49         }
50          return new String(Base64.encodeBase64(data));
51      }

 

posted on 2017-07-19 10:25  车车12138  阅读(262)  评论(0编辑  收藏  举报