Previous topicNext topic
Help > 开发指南 > 窗体开发 > 控件参考 > 控件参考 > 图表 > SmFlexChart > 方法 >
SaveImage

导出图表是指将其保存为某种其他文件格式,以使最终用户能够存储它以供以后使用。例如,保存图表的图片可用于演示文稿或任何其他应用程序。

另存为图像
FlexChart 提供了SaveImage 方法,该方法允许您将图表作为图像保存到指定的流中。此方法采用四个参数:流,图像格式,图像的宽度和高度。控件当前支持的格式是.png、.jpeg和.svg。

此外,还提供了 SaveImage (int w, int h) 方法,用于将图表作为图像保存到剪贴板,该方法采用两个参数,即图像宽度和高度。

Vb.Net
Dim filter As String = "JPEG Image(*.jpg)|*.jpeg|PNG Image(*.png)|*.png|SVG Image(*.svg)|*.svg"
'定义一个保存文件对话框
Dim sfd As New SaveFileDialog()
'文件覆盖提醒
sfd.OverwritePrompt = True
'设置可以保存的文件格式
sfd.Filter = filter
'定义一下图片保存的格式
Dim format As ImageFormat = ImageFormat.Jpeg
'获得图表控件的引用
Dim flexChart1 As SmFlexChart= Proj.OpenedForms("图表").ControlDictionary()("SmFlexChart1")
'如果正确设置了保存的文件名称
If sfd.ShowDialog() = DialogResult.OK Then
    Using fileStream As Stream = sfd.OpenFile()
        Dim fmt As String = Path.GetExtension(sfd.FileName)
        Select Case fmt
            Case ".png"
                format = ImageFormat.Png
                Exit Select
            Case ".svg"
                format = ImageFormat.Svg
                Exit Select
        End Select
        ' 保存图表的图片到指定文件
        flexChart1.SaveImage(fileStream, format, flexChart1.Width, flexChart1.Height)
        ' 将图表图像保存到剪贴板
        flexChart1.SaveImage(flexChart1.Width, flexChart1.Height)
    End Using
End If

C#
string filter = "JPEG Image(*.jpg)|*.jpeg|PNG Image(*.png)|*.png|SVG Image(*.svg)|*.svg";
// 定义一个保存文件对话框
SaveFileDialog sfd = new SaveFileDialog();
// 文件覆盖提醒
sfd.OverwritePrompt = true;
// 设置可以保存的文件格式
sfd.Filter = filter;
// 定义一下图片保存的格式
ImageFormat format = ImageFormat.Jpeg;
// 获得图表控件的引用
SmFlexChart flexChart1 = Proj.OpenedForms["图表"].ControlDictionary()["SmFlexChart1"] as SmFlexChart;
// 如果正确设置了保存的文件名称
if (sfd.ShowDialog() == DialogResult.OK)
{
    using (Stream fileStream = sfd.OpenFile())
    {
        string fmt = Path.GetExtension(sfd.FileName);
        switch (fmt)
        {
            case ".png":
                {
                    format = ImageFormat.Png;
                    break;
               }

            case ".svg":
                {
                    format = ImageFormat.Svg;
                    break;
                }
        }
        // 保存图表的图片到指定文件
        flexChart1.SaveImage(fileStream, format, flexChart1.Width, flexChart1.Height);
        // 将图表图像保存到剪贴板
        flexChart1.SaveImage(flexChart1.Width, flexChart1.Height);
    }
}