在c#中 把chart保存为图片是很容易的事,如下代码:
using (SaveFileDialog Sfd = new SaveFileDialog())
{
Sfd.Filter = "BMP文件|*.bmp|JPEG文件|*.jpg";
if (Sfd.ShowDialog() == DialogResult.OK)
{
FileName = Sfd.FileName;
if (Sfd.FilterIndex == 1)
chart1.SaveImage(Sfd.FileName, System.Drawing.Imaging.ImageFormat.Bmp);
else
chart1.SaveImage(Sfd.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
可在今天试时,发现我保存后的图片背景都是黑色。奇怪了,换一个chart2来试又是正常的。仔细查才发现,当chart的背景为透明色时,保存的图片背景就是黑色了。于是可以在保存前把背景改成白色,保存完后再改回来就解决了。 改成如下就好了。
using (SaveFileDialog Sfd = new SaveFileDialog())
{
Sfd.Filter = "BMP文件|*.bmp|JPEG文件|*.jpg";
if (Sfd.ShowDialog() == DialogResult.OK)
{
chart1.BackColor = Color.White;//
FileName = Sfd.FileName;
if (Sfd.FilterIndex == 1)
chart1.SaveImage(Sfd.FileName, System.Drawing.Imaging.ImageFormat.Bmp);
else
chart1.SaveImage(Sfd.FileName, System.Drawing.Imaging.ImageFormat.Jpeg);
chart1.BackColor = Color.Transparent ;
}
}
}