今天在開發時候遇到了這個問題,我的情景是這樣的:
using (MemoryStream ms = new MemoryStream(item.ImageData)) { Image Image = Image.FromStream(Ms); imageSlider1.Images.Add(Image); Ms.Close(); Ms.Dispose(); }
使用內存流讀取數據庫中的圖片數據,然后把流加載到Image對象,結果出現異常:GDI+ 中發生一般性錯誤。經查找網上一些大佬資料得出,通過這種方式獲取Image,流不能被釋放。
思路:將圖片內容重寫到一個新的對象
using (MemoryStream ms = new MemoryStream(item.ImageData)) { Image Image = System.Drawing.Image.FromStream(ms); Bitmap Bmp = new Bitmap(Image.Width, Image.Height); Graphics Grp = Graphics.FromImage(Bmp); Grp.DrawImage(Image, 0, 0); imageSlider1.Images.Add(Bmp); ms.Close(); }
浙公網安備 33010602011771號