溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

.NET二進(jìn)制圖片存儲與讀取的常見方法是什么

發(fā)布時間:2021-07-15 15:20:58 來源:億速云 閱讀:100 作者:chen 欄目:編程語言

本篇內(nèi)容主要講解“.NET二進(jìn)制圖片存儲與讀取的常見方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“.NET二進(jìn)制圖片存儲與讀取的常見方法是什么”吧!

.NET二進(jìn)制圖片存儲與讀取的常見方法有以下幾種:

.NET二進(jìn)制圖片存儲:以二進(jìn)制的形式存儲圖片時,要把數(shù)據(jù)庫中的字段設(shè)置為Image數(shù)據(jù)類型(SQL Server),存儲的數(shù)據(jù)是Byte[].

1.參數(shù)是圖片路徑:返回Byte[]類型: 

public byte[] GetPictureData(string imagepath)          {              /**/////根據(jù)圖片文件的路徑使用文件流打開,并保存為byte[]                 FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是其他重載方法               byte[] byData = new byte[fs.Length];              fs.Read(byData, 0, byData.Length);              fs.Close();              return byData;          }

2.參數(shù)類型是Image對象,返回Byte[]類型: 

public byte[] PhotoImageInsert(System.Drawing.Image imgPhoto)          {              //將Image轉(zhuǎn)換成流數(shù)據(jù),并保存為byte[]                 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;          }

好了,這樣通過上面的方法就可以把圖片轉(zhuǎn)換成Byte[]對象,然后就把這個對象保存到數(shù)據(jù)庫中去就實(shí)現(xiàn)了把圖片的二進(jìn)制格式保存到數(shù)據(jù)庫中去了。下面我就談?wù)勅绾伟褦?shù)據(jù)庫中的圖片讀取出來,實(shí)際上這是一個相反的過程。

.NET二進(jìn)制圖片讀取:把相應(yīng)的字段轉(zhuǎn)換成Byte[]即:Byte[] bt=(Byte[])XXXX

1.參數(shù)是Byte[]類型,返回值是Image對象: 

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.參數(shù)是Byte[] 類型,沒有返回值,這是針對asp.net中把圖片從輸出到網(wǎng)頁上(Response.BinaryWrite)

public void WritePhoto(byte[] streamByte)         {             // Response.ContentType 的默認(rèn)值為默認(rèn)值為“text/html”             Response.ContentType = "image/GIF";             //圖片輸出的類型有: image/GIF  image/JPEG             Response.BinaryWrite(streamByte);         }

補(bǔ)充:

針對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二進(jìn)制圖片存儲與讀取的常見方法是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI