Echarts 图片保存到服务器 详解

  1. Echarts 介绍 点我

  2. 通过事件跳转到JS函数

  3. 通过全局echartsDOM实例得到图片
    是被加密过的

      img = myChart.getDataURL({
      pixelRatio: 2, // double pixel
      backgroundColor: '#fff' 
    });
    
  4. Base64位图片传到服务器

    1. base64位图片直接传到服务器,会被http协议转换掉,具体是空格+
    String base64Str = request.getParameter("img");
    base64Str = base64Str.replaceAll(" ", "+");
    
    1. js 加密
    imgStr = encodeURIComponent(img);
    

    这个加密后,不用Java是不用decode的,原因是request.getParameter()是会自动解密。

  5. 去除Base64协议类型头

    base64Str = base64Str.split("base64,")[1];
    
  6. 保存图片

    /**
     * base64字符串转化成图片
     * * @Author Mangodai
     * @Date 9/18/2017 6:10 PM
     * @param imgStr
     * @param imgFile
     * @return
     */
    public static boolean GenerateImage(String imgStr, File imgFile) {
        //对字节数组字符串进行Base64解码并生成图片
        if (imgStr == null) //图像数据为空
            return false;
        BASE64Decoder decoder = new BASE64Decoder();
        try {
            //Base64解码
            byte[] b = decoder.decodeBuffer(imgStr);
            OutputStream out = new FileOutputStream(imgFile);
            out.write(b);
            out.flush();
            out.close();
            return true;
        } catch (Exception e) {
            return false;
        }
    }
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,281评论 19 139
  • /**ios常见的几种加密方法: 普通的加密方法是讲密码进行加密后保存到用户偏好设置( [NSUserDefaul...
    彬至睢阳阅读 3,077评论 0 7
  • 概述 之前一直对加密相关的算法知之甚少,只知道类似DES、RSA等加密算法能对数据传输进行加密,且各种加密算法各有...
    Henryzhu阅读 3,081评论 0 14
  • 在Gooogle I/O 2013年的大会上面,展示的Volley库,已经成为android开发中最常用的处理和缓...
    优才学院阅读 8,196评论 2 9
  • 我的博客原文地址 后端返回的数据中总会出现一些NSNull类型,当我们一处理程序就会崩溃,因此想到把返回的数据中的...
    zlcode阅读 2,977评论 0 4