ECharts 圖表導出


Echarts圖形是由Javascript親自在前端網頁上繪制的

1.用ECharts配置項手冊中的toolbox.feature.saveAsImage

toolbox: {
  show: true,
  feature: {
    saveAsImage: {
    show:true,
    excludeComponents :['toolbox'],
    pixelRatio: 2
    }
  }
}
//寫在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(1);

                p = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
                ps.Param[0] = 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM