如何获取syncfusion chartwebcontrol的二进制数据以保存到DB?

时间:2011-10-21 19:15:05

标签: asp.net syncfusion

我的aspx页面中有一个syncfusion chartwebcontrol,我需要将图表保存到二进制列中的数据库中。我不确定如何将syncfuion控件的图像转换为字节形式。

1 个答案:

答案 0 :(得分:0)

您可以使用ChartWebControl方法将Image保存为SaveImage,然后使用Stream概念将此图像转换为二进制数据,并将此二进制数据保存在数据库中。您可以使用File Stream类将图表图像转换为二进制。

请参阅以下代码段

[C#]

this.ChartWebControl1.SaveImage(Server.MapPath("Chart.png"));
byte[] buffer = ImageToBinary(Server.MapPath("Chart.png"));
//Insert the above buffer data to db for chart image binary data
--------------------------------
public static byte[] ImageToBinary(string imagePath)
{
    FileStream fileStream = new FileStream(imagePath, FileMode.Open, FileAccess.Read);
    byte[] buffer = new byte[fileStream.Length];
    fileStream.Read(buffer, 0, (int)fileStream.Length);
    fileStream.Close();
    return buffer;
}

您可以将二进制数据转换回图像,请参阅下面的代码段。

[C#]

public static Image BinaryToImage(System.Data.Linq.Binary binaryData)
{
    if (binaryData == null) return null;
    byte[] buffer = binaryData.ToArray();
    MemoryStream memStream = new MemoryStream();
    memStream.Write(buffer, 0, buffer.Length);
    return Image.FromStream(memStream);
}