C#操作圖象

哈哈哈哈哈我撒發表於2009-09-29

 1、首先從檔案中讀取要加到資料庫中的圖片,將它轉換成byte[]型別,這樣就可以加到資料庫中去了。
FileStream fs = new FileStream(openPicForRead.FileName, FileMode.OpenOrCreate, FileAccess.Read);
MyData = new byte[fs.Length];
fs.Read(MyData, 0, Convert.ToInt32(fs.Length));
fs.Close();
2、從資料庫中讀取出來並在PictrueBox中顯示,用下面這種方法比較重要,如果用FileForm生成臨時檔案的話如果開啟第二次時就會提示檔案正在使用。注意一定要用MemoryStream。
byte[] readimage = new byte[0];
int piccount = DataBind.Tables["T_Equipment"].Rows.Count;
readimage = (byte[])DataBind.Tables["T_Equipment"].Rows[piccount-1]["Photo"];

if (readimage.Length !=0)
{
  MemoryStream stmBLOBData = new MemoryStream(readimage);
  picEquipment.Image = Image.FromStream(stmBLOBData);
}
3、將PictureBox.Image加到資料庫中,為什麼要提到這一點呢?因為在修改一條記錄時可能不會修改它的影象欄位,所以只能把它的顯示結果重新寫回去,當然也可以在Update時不修改它。
MyData = new byte[0];
MemoryStream ms=new MemoryStream();
PictureBox1.Image.Save(ms,ImageFormat.Jpeg);
MyData = ms.GetBuffer();
最後將MyData寫回去。
第三條的名稱空間為using System.Drawing.Imaging;

相關文章