2011-12-21 39 views
1

您好我有以下代碼,其中所述可變數據已被填充有現在當我想將這些存儲的字節在分貝轉換成圖像,並希望從DATABSE的字節數組向他們展示在圖片框在它如何轉換System.Byte []到圖像

pictureBox1.Image = Image.FromStream(ms); 

給出了一個錯誤和錯誤是參數無效。我應該做什麼以下是我的代碼:

byte[] data = (byte[])ds.Tables[0].Rows[i][7]; 
MemoryStream ms = new MemoryStream(data); 
ms.Write(data, 0, data.Length); 
ms.Position = 0; 
//Image img= Image.FromStream(ms); 

pictureBox1.Image = Image.FromStream(ms); 
+0

您在調試器中檢查數據是否被正確複製? – fixagon 2011-12-21 10:36:10

+0

你好!在調試模式下,我已經看到數據具有類似於{byte [26]}的內容,並且在每個元素中,例如[0]具有值83,類似地[1]具有0 ,,, [2]具有121等,直到[25] – 2011-12-21 10:41:28

+0

在數據庫中的字節,它在內存中的字節正確的圖像存儲前檢查你的形象..使用我在答覆中規定的方法和鏈接.. – 2011-12-21 10:45:47

回答

0

你的代碼看起來不錯;可能是您保存的圖像格式不正確。 這可能也是有幫助的:http://msdn.microsoft.com/en-us/library/93z9ee4x.aspx

此外,嘗試設置CanWrite屬性設爲True:

的MemoryStream毫秒=新的MemoryStream(數據,真實);

編輯: 正如你問:數據類型應爲Image,我會建議使用PNG格式總是而非GIF。

+0

我已經使用OLE對象作爲數據類型來將圖像存儲在Access數據庫中,不管這是否是結果沒有正確返回的問題,我是否需要更改該數據類型? – 2011-12-21 12:06:42

+0

使用PNG格式而不是GIF ...) – Pranav 2011-12-21 13:21:30