Echarts图形是由Javascript亲自在前端网页上绘制的

1.用ECharts配置项手册中的toolbox.feature.saveAsImage

toolbox: {
  show: true,
  feature: {
    saveAsImage: {
    show:true,
    excludeComponents :['toolbox'],
    pixelRatio:
    }
  }
}
//写在option中,这样会在图形右上角产生一个保存为图片的标识,点击即可下载图片,这种方法试用于网站点击保存的需求

2.用ECharts实例方法getImage(这种方法得到的picInfo为[object HTMLImageElement],无法通过Ajax传递到后台处理,只能用于显示)

这个功能在ECharts3中好像已经舍弃,作者用ECharts3没有出现任何效果,换成ECharts2的js文件才可以运行

myChart.setOption(option);
var picInfo = myChart.getImage(); //用来展示是否成功
onload=function f(){
  document.getElementById("pic").appendChild(picInfo);
  //document.getElementById("pic").innerHTML = picInfo;
}

3.用ECharts实例方法getDataURL(实现图片自动保存)

myChart.setOption(option);
var picInfo = myChart.getDataURL(); //getDataURL仍然要放在setOption方法生成一个简单的图形之后,现在我们得到的picInfo是一串base64信息,我们可以将picInfo用Ajax传递到后台处理

4.后台保存图片

方法1.参考:https://docs.microsoft.com/zh-cn/dotnet/api/system.drawing.image.save?view=netframework-4.7.2#System_Drawing_Image_Save_System_String_(需要版本要求较高)

方法2:

/// <summary>
/// 无损保存图片
/// </summary>
/// <param name="imgResult">图片</param>
/// <param name="Path">保存的路径</param>
/// <param name="ImageType">图片的类型,image/jpeg,image/png,image/gif,image/tiff,image/bmp</param>
/// <returns></returns>
public bool SaveImage(Image imgResult, string Path, string ImageType)
{
EncoderParameter p;
EncoderParameters ps;
try
{
ps = new EncoderParameters(); p = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
ps.Param[] = p; ImageCodecInfo ii = GetCodecInfo(ImageType);
imgResult.Save(Path, ii, ps);
imgResult.Dispose();
}
catch (Exception ex)
{
return false;
}
return true;
} /// <summary>
/// 获取图片的编码类型
/// </summary>
/// <param name="mimeType"></param>
/// <returns></returns>
public ImageCodecInfo GetCodecInfo(string mimeType)
{
ImageCodecInfo[] CodecInfo = ImageCodecInfo.GetImageEncoders();
foreach (ImageCodecInfo ici in CodecInfo)
{
if (ici.MimeType == mimeType) return ici;
}
return null;
}

参考:https://www.jianshu.com/p/f5359864fa4f

ECharts 图表导出的更多相关文章

  1. ECharts图表插件(4.x版本)使用(一、关系图force节点显示为自定义图像/图片,带分类选择)

    导读 ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safar ...

  2. echarts图表第一个案例

    1.action中获取到数据 @Override public String execute() throws Exception { List<Student> find = echar ...

  3. echarts图表标签(axisLabel)折行

    在项目中遇到了一个echarts图表标签过长需折行的需求,so引出这篇总结,啦啦啦有帮助就多多支持啦,撒花撒花撒花~~~~ 在此不对echarts其他用法做解释,详细见echarts文档(点击前往) ...

  4. 把页面上的图表导出为pdf文件,分享一种请求下载文件的方法

    最近客户提出一个需求,就是把页面上的图表导出为pdf文件. 找了很多资料.终于有了点头绪.最主要是参考了HighCharts的做法.http://www.hcharts.cn/ 实现原理:把页面图表的 ...

  5. ECharts图表中级入门之formatter:夜谈关于ECharts图表内的数据格式化方法

    来源于:http://www.ithao123.cn/content-3751220.html 格式化之所以存在,主要是因为我们想把一些不够人性化的内容通过某种处理让其变得人性化,便于用户更好地理解内 ...

  6. Echarts图表控件使用总结2(Line,Bar)—问题篇

    Echarts图表控件使用总结1(Line,Bar):http://www.cnblogs.com/hanyinglong/p/Echarts.html 1.前言 a.前两天简单写了一篇在MVC中如何 ...

  7. ***ECharts图表入门和最佳实践

    ECharts数据图表系统? 5分钟上手! [ECharts简介] ECharts开源来自百度商业前端数据可视化团队,基于html5 Canvas,是一个纯Javascript图表库,提供直观,生动, ...

  8. 在asp.net中如何自己编写highcharts图表导出到自己的服务器上来

    1.准备工作:网上下载highcharts导出的关键dll.      1).Svg.dll:因为highcharts的格式其实就是一个xml,采用svg的方式画图:      2).itextsha ...

  9. Saiku图表导出时中文显示问题的解决方法

    Saiku图表导出时png,jpg,pdf三种格式的中文显示都有问题,目前找到一种不太完善的解决方法(中文可以显示但不清晰),需要修改Saiku项目下的ExporterResource.java文件, ...

随机推荐

  1. flashback table

    前提:开启回收站 查看回收站状态 SQL> show parameter recyclebin; NAME TYPE VALUE -------------------------------- ...

  2. 记录一次 Linux crontab 执行django 脚本 失败 的经历和解决办法

    目的是想通过定时任务来执行一次数据统计,本来可以用celery来做,但是想着这个项目整个就没用到异步的地方,所以决定用crontab来做.之前做过数据库的热备份,想来用该没啥问题,但是现实打脸啪啪响. ...

  3. tensor与数组转化

    import tensorflow as tfimg1 = tf.constant(value=[[[[1],[2],[3],[4]],[[1],[2],[3],[4]],[[1],[2],[3],[ ...

  4. bzoj4940 [Ynoi2016]这是我自己的发明 莫队+dfs序

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4940 题解 对于换根操作,处理方法就很套路了. 首先先假定以 \(1\) 为根做一遍 dfs, ...

  5. 前端面试题(4)JavaScript

    前端面试题JavaScript(一) JavaScript的组成 JavaScript 由以下三部分组成: ECMAScript(核心):JavaScript 语言基础 DOM(文档对象模型):规定了 ...

  6. nodejs和npm之间的关系

    Node.js是JavaScript的一种运行环境,是对Google V8引擎进行的封装.是一个服务器端的javascript的解释器. 包含关系,nodejs中含有npm,比如说你安装好nodejs ...

  7. 关于python读写文件的r+方式的坑

    写脚本的时候需要将文件中的一行修改,我的修改逻辑是,用r+方式打开文件,然后将原文件数据读入一个数组,修改数组的对应元素,在seek(0),然后将数组write进文件 结果: 文件文件末尾总是多出一行 ...

  8. leetcode-167周赛-1292-元素和小于等于阈值的正方形的最大边长

    题目描述; 自己的提交:超时 class Solution: def maxSideLength(self, mat: List[List[int]], threshold: int) -> i ...

  9. ckeditor如何能实现直接粘贴把图片上传到服务器中?

    在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper. 通过知乎提供的思路找到粘贴的原理,通过TheViper找 ...

  10. vue路由vue-router的安装和使用

    1.安装,如果你没有在创建项目时候选择的情况下  cnpm install vue-router 2.使用    假设App为根组件,两个自定义组件home及list main.js里操作 impor ...