Windows窗体应用程序 - 将字符串转换为画布绘图

时间:2016-11-18 18:04:18

标签: c# xml canvas windows-forms-designer

以下是c#中的全部内容: 我正在使用各种图形方法在画布上绘制(LevelPanel),然后我将其保存到XML文件中。我是通过将其转换为字符串来实现的:

 private void Save_Click(object sender, EventArgs e)
    {
        string filename = FileNameBox.Text;

         Bitmap bmp = new Bitmap(LevelPanel.Width, LevelPanel.Height);
         Graphics g = Graphics.FromImage(bmp);
         Rectangle rect = LevelPanel.RectangleToScreen(LevelPanel.ClientRectangle);
         g.CopyFromScreen(rect.Location, Point.Empty, LevelPanel.Size);
         g.Dispose();
        string picString = "";

        using (MemoryStream m = new MemoryStream())
        {
            bmp.Save(m, ImageFormat.Png);
            picString = Convert.ToBase64String(m.ToArray());
            m.Close();
        }
        File.WriteAllText(@filename, picString);

    }

我有什么方法可以加载文件(取出字符串并将其转换回图像)。我环顾四周,但在这上面找不到任何东西。感谢任何帮助。如果不可能,任何人都可以建议将图像保存/加载为xml文件的替代方法。

1 个答案:

答案 0 :(得分:0)

如果您只是使用File.WriteAllText("somefile.xml", picString);

保存XML

像这样阅读xml

string base64String = File.ReadAllText("somefile.xml");

阅读XML文件后,您可以通过调用此方法将其转换回图像

public static Image ImageFromBase64String(string base64String)
{
    byte[] imageBytes = Convert.FromBase64String(base64String);

    using (MemoryStream ms = new MemoryStream(imageBytes))
    {
        return new Bitmap(Image.FromStream(ms, true));
    }
}