2015-10-19 147 views
0

我創建的圖表動態,但我想保存在圖片列表或任何其他類型的列表創建的圖表,只要不在文件夾中。保存圖表創建圖像列表

問題:如何保存圖像列表/其他類型的列表創建的圖表?

這是我的代碼:

     Chart Chart1 = new Chart(); 
         Chart1.DataSource = dt; 
         Chart1.Width = 800; 
         Chart1.Height = 500; 

         Chart1.Series.Add(new Series()); 
         Chart1.Series[0].ChartType = SeriesChartType.BoxPlot; 

         List<object> List_CHART = dt.AsEnumerable().ToList<object>(); 

         foreach (DataRow row in dt.Rows) 
         { 
          Chart1.Series[0].Points.AddXY(row["TITLE"], new object[] { row["MIN"], row["MAX"], row["25TH_PERCENTILE"], row["75TH_PERCENTILE"], row["50TH_PERCENTILE"], row["AVG"] }); 
         } 

         //create chartareas 
         ChartArea ca= new ChartArea(); 
         ca.AxisX = new Axis(); 
         ca.AxisY = new Axis(); 
         Chart1.ChartAreas.Add(ca); 

         //databind 
         Chart1.DataBind(); 
         Chart1.Visible = true; 

         panel.Controls.Add(Chart1); 

感謝。

回答

0
  1. 看圖表API找到Chart.SaveImage Method
  2. 谷歌「保存圖表到流」找到this SO question
  3. 看圖像API Image.FromStream Method

最終的解決方案應該是這個樣子:

 var chartImages = new ImageList(); 
     var chartStream = new MemoryStream() 
     chart.SaveImage(chartStream, ChartImageFormat.Png); 
     var chartImage = Image.FromStream(chartStream); 
     chartImages.Add(chartImage); 

此外,要注意備註部分的圖像類:

你必須保持該圖像的生命週期的流。

+0

嗨@DanielS,我需要圖表圖像而不是圖表數據,因爲我想在圖像列表中存儲很多圖表圖像,然後將它們導出到excel。 –