簡體   English   中英

如何將System.Byte []轉換為Image? (C#窗口形式)

[英]How can I convert System.Byte[] to Image? (C# window forms)

我有一個PictureBox控件我想在其中顯示一個圖像。 我使用以下數據類型將我的圖像保存在MS Access數據庫中: OLE Object 我發現很難再顯示它。 請看一下我的代碼,你們可以為它設計一個解決方案。 我有這個Exception

Unable to cast object of type 'System.Byte[]' to type 'System.Drawing.Image'.

這是我的代碼:

OleDbCommand cmd = new OleDbCommand("SELECT IMAGE FROM IMAGES WHERE ID = 1", myConn));
            cmd.CommandType = CommandType.Text;
            OleDbDataAdapter da = new OleDbDataAdapter(cmd);
            DataTable dt = new DataTable("dt");
            da.Fill(dt);

            if (dt != null)
            {              
                pictureBox1.Image = (Image)dt.Rows[0]["IMAGE"];
            }

最簡單的方法是使用MemoryStream並調用Image.FromStream

byte[] data = (byte[]) dt.Rows[0]["IMAGE"];
MemoryStream ms = new MemoryStream(data);
pictureBox1.Image = Image.FromStream(ms);

編輯:如果你遇到漢斯描述的問題,你基本上需要刪除該標題。 一旦得到了一個字節數組中帶剛的圖像數據,使用上面的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM