• base64图片


    常见的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      }
  • 相关阅读:
    PSE Access Service
    The JXTA Migration
    JXSE 2.5 : What's Cool #6 PeerGroup Executor and ScheduledExcutor
    JXTA Kitchen
    LookupListener中的resultChanged方法是在EDT中执行么?
    同一台机器启动两个结点时的端口冲突问题
    (转)OpenSSL中对称加密算法的统一接口
    关于“未能加载文件或程序集“System.Core, Version=3.5.0.0
    暗香浮动的夜晚
    java xml序列化与反序列化
  • 原文地址:https://www.cnblogs.com/taleche/p/7204360.html
Copyright © 2020-2023  润新知