图片与Base64数据转换存储

来源:互联网 发布:网络彩票停售 编辑:程序博客网 时间:2024/04/30 08:27
public static void main(String[] args) {        // 测试从Base64编码转换为图片文件        String strImg = "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAFMQAABTEBt+0oUgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAVUSURBVEiJpZRZbFzVHcZ/5965c2ffV9sz8RjHdpyxweNEoSRN2YJLwxJBqYTahz6URSC1UqtWbSOlIPHQVuoDFeKpaaWqUh+iShRUElUCTBZRm8iBAnHiNfEyZuzxzHjuzHj224fUI4whQeJI5+Ecne/7/b9zjv7ous5XmQ6L/B3Aous6gBHwfBWdxC2G32F8Sgihhm3q8MEu19mQy9zlMCuJvSHbq7fSArcGRJymBx4fDI6ntNrGQ/3+4XjA8reoS33owT3e+zrctju+NqBYbXz0cNw/6DDJz9pVA30h62A8ZPt+PGz3+S3Sk18LYBciYDJIxwC+e3uoz6bK7A3arCN7fJ2VehNZkr4d8qjxm3mI/z8aAG4hXJ0d9uPVejNVrbNyYJfj1/ujzn6X2bBDuFlrIBB8mNQWzs1mXpFkyeU2GzqvrVX+cC1XnNgB2OO3DveErH9+NB4YLFQaldVCpdETsFliu3sJtkcQAj5dWqRer+P1B5ENMqsrSVLJJa6uZOtuk6K7LIpyaSmffHc6c2JiOX8SoFVau8d8/Kn7BweHDhzk3Oio5DRn1L1D+4h2dbeqdnl821IEwu3s7h9AeuffBiEp+uEjI0Q/nGibSZ//AXBy2xu4zIYeh9PF8nKyXtEyisPlJtrVzaamsTB6lvT0TMu4mM2yeP4CxUwG1WQiGuumpOXE5OXLNbvDScCm9gkhrNsSrBWqq1NXr/YaFYMBwOF0AbD+3jjdb15gsTdCPbYLg0Eh+845bjv7AbPfXMP6+DFkWQZgYeoTpdwQxWvZ0qyu68VtCS7NZp94/ePUit6oA2Cx2QGQvG5WQy6KATcGgwJA0+Ug7Xeiu5wA5DLrAOjNJuNz6cql5cJzW76tBBooMa/F9vnf0jacYLOvh5jF2tqL3ns3xf0JonYHpUKBXGadaFc32fQafcGq2zqVbgf+uw0QdZmO7PaZ3VvrxWuzRGJdqCYzZquN02OXSfREqNbqLKU3+EZ/JwCKauTuBx9uJai++U8RshkPAae3ATw2ZcCu3lj6giHaIrsoaHlUkxmASr3BP85+QLFcZX9vtJVGUYykshpehxWDLOH1B/Fa59t2XlG5MVuqNtgVjbD/0Lc+f1McOzhAuVpDMcjIkkQqq3F+Jk3d7OXS5Ay/fSIBQKPRIFuqr+4AzKZLZ+bWN7WhhM8OMH51mcFYAJNRaUHypTLnZ9apmb2UJAs/+c0rqKrKn35/onVmOZUmla+O7QDoun79e0OhRW1jox/AYDTy/MlRjt5zF0I2MDW/yOH7R/jhiWNIksSpU6dQVfWGuJwHTORzWSbmU+nruc13t3y3NbvkRmUyuXidbHqNRMzPzx/dh9UX5ulfvMihkUc4fN8IqqoihGCrxUxdmSSoNgCYn7rC7NrmFV3X178QMLdS/tm5udz8RxPjNJtN+trc7NGX+N2vfoyW30DTtBsiSaLZbJLL5Xj9L3/kzp4w66sp3r74SWY6XXjhs57builAvN3xy6cPtL3Uc1tMjif2tX7Ra2PTlCwBfB1d+IJhzvzrDbqdEo8NRygXNS6Mvs3Lb02ffH8h96ObAoQQ4s5Ox2tPJsJHvXaL3Be/nUhXN0IIACq1OlmtRMjjQNd1UsklLo79h7+OLbw3Op05stUivhSwBRkI247f2+N5Zqjd0WF3OHG6PZitNoQQ1KoVKpUK6dSnTC5nMqcn03+/uJj/qa7r1R1eXwTYGh1u2x0DYfMLQZuxN+Yxd0bcJpMkBMl8pTa3VlpIl2ozHy8XXp7JFE9/mcdNAZ9JJFkVZSDiUY7KQjItbJTPaJv193Vdr91K+z+BklGf3fugXAAAAABJRU5ErkJggg==";        GenerateImage(strImg, "D:\\aaaa.jpg");        // 测试从图片文件转换为Base64编码        System.out.println(GetImageStr("d:\\monkey_24.png"));    }    public static String GetImageStr(String imgFilePath) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理        byte[] data = null;        // 读取图片字节数组        try {            InputStream in = new FileInputStream(imgFilePath);            data = new byte[in.available()];            in.read(data);            in.close();        } catch (IOException e) {            e.printStackTrace();        }        // 对字节数组Base64编码        Encoder encoder = Base64.getEncoder();        return encoder.encodeToString(data);// 返回Base64编码过的字节数组字符串    }    public static boolean GenerateImage(String imgStr, String imgFilePath) {// 对字节数组字符串进行Base64解码并生成图片        if (imgStr == null) // 图像数据为空            return false;        Decoder decoder = Base64.getDecoder();        try {            // Base64解码            byte[] bytes = decoder.decode(imgStr);            for (int i = 0; i < bytes.length; ++i) {                if (bytes[i] < 0) {// 调整异常数据                    bytes[i] += 256;                }            }            // 生成jpeg图片            File file = new File(imgFilePath);            if (!file.exists()) {                file.createNewFile();            }            OutputStream out = new FileOutputStream(file);            out.write(bytes);            out.flush();            out.close();            return true;        } catch (Exception e) {            return false;        }    }

内联图片即使把图片文件编码成base64,优点是可以减少http的请求,缺点是不能跨域缓存,用html5的file api里的 readAsDataURL函数 这是一个把文件转化成base64编码

w3c的文档 http://www.w3.org/TR/FileAPI/

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>简单的html5 File测试 for pic2base64</title><style></style><script>window.onload = function(){  var input = document.getElementById("demo_input");  var result= document.getElementById("result");  var img_area = document.getElementById("img_area");  if ( typeof(FileReader) === 'undefined' ){    result.innerHTML = "抱歉,你的浏览器不支持 FileReader,请使用现代浏览器操作!";    input.setAttribute( 'disabled','disabled' );  } else {    input.addEventListener( 'change',readFile,false );  }}function readFile(){  var file = this.files[0];  //这里我们判断下类型如果不是图片就返回 去掉就可以上传任意文件  if(!/image\/\w+/.test(file.type)){    alert("请确保文件为图像类型");    return false;  }  var reader = new FileReader();  reader.readAsDataURL(file);  reader.onload = function(e){    result.innerHTML = '<img src="'+this.result+'" alt=""/>';    img_area.innerHTML = '<div class="sitetip">图片img标签展示:</div><img src="'+this.result+'" alt=""/>';  }}</script></head><body>  <input type="file" value="sdgsdg" id="demo_input" />  <textarea id="result" rows=30 cols=300></textarea>  <p id="img_area"></p></body></html> 

转自: http://www.cnblogs.com/fenglie/articles/4997588.html

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 牙齿不能吃酸的怎么办 吃酸的牙齿软了怎么办 吃东西牙酸怎么办,好慌 牙齿吃什么都酸怎么办 牙上面肉肿了疼怎么办 给牙上药后疼怎么办 牙齿掉了一块疼怎么办 牙酸疼怎么办 立刻止疼 45岁牙松动疼痛怎么办 牙裂开了两半了怎么办 大牙裂了一条缝怎么办 牙掉了一颗怎么办 孩子掉第一颗牙怎么办 大牙齿断了一半怎么办 罗马帘拉绳断了怎么办 窗帘的绳子断了,怎么办 窗帘的拉绳坏了怎么办 窗帘杆掉下来了怎么办 窗帘杆螺丝掉了怎么办 宜家窗帘不够宽怎么办 全棉被套缩水了怎么办 浴巾用久了发硬怎么办 新买衣服有褶皱怎么办 帽子洗了变皱了怎么办 帽子压的有折痕怎么办 帽子被压变形了怎么办 开水把衣服皱了怎么办 衣服被热水烫皱怎么办 开水烫皱了衣服怎么办 衣服被热水烫了怎么办 衣服让热水烫了怎么办 衣服高温烫皱了怎么办 网纱静电卷起来怎么办 裙子上的纱卷了怎么办 裙子的边往上卷怎么办 秋款裙子卷边了怎么办 真丝衣服用肥皂洗了怎么办 粘纤面料水洗了怎么办 考研没动力怎么办知乎 考研看不进去书怎么办 清道夫没吃的了怎么办