以下是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文件的替代方法。
答案 0 :(得分:0)
如果您只是使用File.WriteAllText("somefile.xml", picString);
像这样阅读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));
}
}