保存图像列表中创建的图表

时间:2015-10-19 04:08:34

标签: javascript c# asp.net image imagelist

我已动态创建图表,但我想保存在图片列表或任何其他类型的列表中创建的图表,只要不在文件夹中。

问题:如何保存图像列表/其他类型列表中创建的图表?

这是我的代码:

                        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);

感谢。

1 个答案:

答案 0 :(得分:0)

  1. 查看Chart API以查找Chart.SaveImage Method
  2. Google'将图表保存到流'以查找this SO question
  3. 查看Image API Image.FromStream Method
  4. 最终的解决方案应该是这样的:

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

    另外,请注意Image类的备注部分:

      

    您必须在图像的生命周期内保持流打开。