使用.net图表保存图像

时间:2011-11-29 00:47:09

标签: c# asp.net

我想从图表图形中保存图像。 我正在使用以下行。

chart.SaveImage("D:\\mypic.png", System.Web.UI.DataVisualization.Charting.ChartImageFormat.Png);

但我有一个问题:

enter image description here

这是我的代码。

protected void btnBar_Click(object sender, EventArgs e)
{
    string degerler = txtDeger.Text;
    ArrayList array = new ArrayList();

    if (Convert.ToInt32(TextBox2.Text) > Convert.ToInt32(TextBox1.Text))
    {
        Label3.Text = "TopNCount sayısı büyük olamaz...";
    }
    else
    {
        Label3.Text = "";

        for (int i = 1; i < Convert.ToInt32(TextBox1.Text) + 1; i++)
        {
            array.Add(Convert.ToInt32(degerler.Split(',')[i - 1]));
        }

        chart.ChartType = myChart.ChartTypes.Bar;
        chart.TopNCount = Convert.ToInt32(TextBox2.Text);
        chart.DataSource = array;
        chart.DataBind();
        chart.SaveImage("D:\\mypic.png", System.Web.UI.DataVisualization.Charting.ChartImageFormat.Png);
        this.Controls.Add(chart);    
    }
}

2 个答案:

答案 0 :(得分:1)

我的猜测是你无法将图表保存为图像,因为没有渲染任何内容。 尝试挂钩Init / Load / DataBound事件并尝试将其保存。

修改

尝试以下方法:

chart.DataBound += (sender, args) => ((Chart)sender).SaveImage("D:\\mypic.png", System.Web.UI.DataVisualization.Charting.ChartImageFormat.Png);

chart.Load += (sender, args) => ((Chart)sender).SaveImage("D:\\mypic.png", System.Web.UI.DataVisualization.Charting.ChartImageFormat.Png);

答案 1 :(得分:1)

其他人遇到了这个问题:

http://social.msdn.microsoft.com/Forums/en/MSWinWebChart/thread/6ca0a897-4ffe-4c67-851e-6002ee4af19d

图表控件似乎无法找到用于图表的背景。

如果这是问题,也许您可​​以在Microsoft Connect网站上报告错误的异常消息。