摘要:儲存來自MemoryStream的影像資料
最近要將Bitmap從Client傳到Server端,然後在Server端將該影像儲存時,老是會出現GDI+ 中發生泛型錯誤
google了一下,有人說是串流被關閉了,資料也就沒有了,所以才會出現該錯誤。
我試了一下的程式碼
Client
Image img = Image.FromFile("C:\\abc.bmp");
MemoryStream ms = new MemoryStream();
img.Save(ms, ImageFormat.bmp);
然後將ms.GetBuffer()所得到的byte[]傳到Server端。
Server端收到byte[]以後再利用MemoryStream建成Bitmap如下
MemoryStream ms = new MemoryStream();
ms.Write(byteArray, 0, byteArray.Length);
Image img = Image.FromStream(ms);
PictureBox.Image = img; //work
img.Save("c:\\test.bmp"); //會造成GDI+ 中發生泛型錯誤
要改成下面這樣子就不會有錯誤了
Image img = Image.FromStream(ms);
Bitmap bmp = new Bitmap(img); //建立複本
PictureBox.Imae = bmp;
bmp.Save("c:\\test.bmp"); //這樣子就不有出現例外了。
============ 以下是簽名檔 ============
一個小小螺絲釘。
第一次建立Blog,希望以後能慢慢充實它。
Howard