.NET二進制圖片存儲與讀取的常見方法有如下幾種:html
.NET二進制圖片存儲:以二進制的形式存儲圖片時,要把數據庫中的字段設置爲Image數據類型(SQL Server),存儲的數據是Byte[].數據庫
1.參數是圖片路徑:返回Byte[]類型: app
- publicbyte[] GetPictureData(string imagepath)
- {
- ////根據圖片文件的路徑使用文件流打開,並保存爲byte[]
- FileStream fs = new FileStream(imagepath, FileMode.Open);
- byte[] byData = newbyte[fs.Length];
- fs.Read(byData, 0, byData.Length);
- fs.Close();
- return byData;
- }
2.參數類型是Image對象,返回Byte[]類型: asp.net
- publicbyte[] PhotoImageInsert(System.Drawing.Image imgPhoto)
- {
- MemoryStream mstream = new MemoryStream();
- imgPhoto.Save(mstream, System.Drawing.Imaging.ImageFormat.Bmp);
- byte[] byData = new Byte[mstream.Length];
- mstream.Position = 0;
- mstream.Read(byData, 0, byData.Length);
- mstream.Close();
- return byData;
- }
好了,這樣經過上面的方法就能夠把圖片轉換成Byte[]對象,而後就把這個對象保存到數據庫中去就實現了把圖片的二進制格式保存到數據庫中去了。下面我就談談如何把數據庫中的圖片讀取出來,實際上這是一個相反的過程。spa
.NET二進制圖片讀取:把相應的字段轉換成Byte[]即:Byte[] bt=(Byte[])XXXX.net
1.參數是Byte[]類型,返回值是Image對象: excel
- public System.Drawing.Image ReturnPhoto(byte[] streamByte)
- {
- System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);
- System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
- return img;
- }
2.參數是Byte[] 類型,沒有返回值,這是針對asp.net中把圖片從輸出到網頁上(Response.BinaryWrite)orm
- publicvoid WritePhoto(byte[] streamByte)
- {
- Response.ContentType = "image/GIF";
- Response.BinaryWrite(streamByte);
- }
補充:htm
針對Response.ContentType的值,除了針對圖片的類型外,還有其餘的類型:對象
- Response.ContentType = "application/msword";
- Response.ContentType = "application/x-shockwave-flash";
- Response.ContentType = "application/vnd.ms-excel";
另外能夠針對不一樣的格式,用不一樣的輸出類型以適合不一樣的類型:
- switch (dataread("document_type"))
- {
- case"doc":
- Response.ContentType = "application/msword";
- case"swf":
- Response.ContentType = "application/x-shockwave-flash";
- case"xls":
- Response.ContentType = "application/vnd.ms-excel";
- case"gif":
- Response.ContentType = "image/gif";
- case"Jpg":
- Response.ContentType = "image/jpeg";
- }
以上就介紹了.NET二進制圖片存儲和讀取的常見方法。