-3
以下內容全部來自c#: 我使用各種圖形方法在畫布上繪製(LevelPanel),然後將其保存到XML文件中。我通過將其轉換爲一個字符串,這樣做的:Windows窗體應用程序將字符串轉換爲畫布圖形
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文件的替代方法。
謝謝。加載回面板導致系統內存不足,我正在使用LevelPanel.BackgroundImage = Image。像以前一樣編譯好。有任何想法嗎? – CyberRat
更新了這一行的答案'return new Bitmap(Image.FromStream(ms,true));'。但是,除非您使用大圖像,否則內存不足很奇怪,不要忘記在完成使用後丟棄圖像。 –
是的,我忘了處理它們。但我不知道在哪裏放置dispose命令 - 如果在加載後立即使用.Dispose(),它會給我以下錯誤:在System.Drawing.dll中發生未處理的類型爲「System.ArgumentException」的異常,並說該參數無效。 – CyberRat