C#將圖片和字節(jié)流互相轉(zhuǎn)換并顯示到頁面上
圖片轉(zhuǎn)換成字節(jié)流先要轉(zhuǎn)換的IMage對象,轉(zhuǎn)換之后返回字節(jié)流。字節(jié)流轉(zhuǎn)換成圖片,要轉(zhuǎn)換的字節(jié)流,轉(zhuǎn)換得到的Image對象,根據(jù)圖片路徑返回圖片的字節(jié)流,感興趣的朋友看下下面的代碼。
C#將圖片和字節(jié)流相互轉(zhuǎn)換代碼:
usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Drawing; usingSystem.IO; namespaceMicrosoft.Form.Base { classImageToByte { /// <summary> /// 圖片轉(zhuǎn)換成字節(jié)流 /// </summary> /// <param name="img">要轉(zhuǎn)換的Image對象</param> /// <returns>轉(zhuǎn)換后返回的字節(jié)流</returns> publicstaticbyte[] ImgToByt(Image img) { MemoryStream ms = newMemoryStream(); byte[] imagedata = null; img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); imagedata = ms.GetBuffer(); returnimagedata; } /// <summary> /// 字節(jié)流轉(zhuǎn)換成圖片 /// </summary> /// <param name="byt">要轉(zhuǎn)換的字節(jié)流</param> /// <returns>轉(zhuǎn)換得到的Image對象</returns> publicstaticImage BytToImg(byte[] byt) { MemoryStream ms = newMemoryStream(byt); Image img = Image.FromStream(ms); returnimg; } // /// <summary> /// 根據(jù)圖片路徑返回圖片的字節(jié)流byte[] /// </summary> /// <param name="imagePath">圖片路徑</param> /// <returns>返回的字節(jié)流</returns> privatestaticbyte[] getImageByte(stringimagePath) { FileStream files = newFileStream(imagePath, FileMode.Open); byte[] imgByte = newbyte[files.Length]; files.Read(imgByte, 0, imgByte.Length); files.Close(); returnimgByte; } } }
將字節(jié)流轉(zhuǎn)換為圖片文件顯示到頁面上
//Byte[] result; System.IO.MemoryStream ms =new MemoryStream(result, 0, result.Length) Response.ClearContent(); Response.ContentType = "image/Gif"; Response.BinaryWrite(ms.ToArray()); 或者添加一個處理圖片的Handler,內(nèi)容如下: <%@ WebHandler Language="C#" Class="Handler" %> using System.Web; using System.IO; public class Handler : IHttpHandler { public void ProcessRequest (HttpContext context) { int CategoryID = int.Parse(context.Request.QueryString["CategoryID"]); //調(diào)用Categories.GetPicture取得圖片stream Stream stream = CategoriesPicture.GetPicture(CategoryID); if (stream !=null) { //取得圖片stream大小 int buffersize = (int)stream.Length; //建立buffer System.Byte[] buffer = new System.Byte[buffersize ] ; //調(diào)用stream.Read,從stream讀取到buffer,并返回count int count = stream.Read(buffer, 0, buffersize); //返回圖片字段buffer if (count!=0) context.Response.OutputStream.Write(buffer, 0, count); } } public bool IsReusable { get { return false; } } }
以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)C#將圖片和字節(jié)流互相轉(zhuǎn)換并顯示到頁面上有所幫助。
- C#中圖片、二進(jìn)制與字符串的相互轉(zhuǎn)換方法
- C# 圖片與二進(jìn)制轉(zhuǎn)換的簡單實例
- asp.net(c#)實現(xiàn)從sqlserver存取二進(jìn)制圖片的代碼
- C#中圖片.BYTE[]和base64string的轉(zhuǎn)換方法
- 詳談C# 圖片與byte[]之間以及byte[]與string之間的轉(zhuǎn)換
- C#簡易圖片格式轉(zhuǎn)換器實現(xiàn)方法
- C#實現(xiàn)的圖片、string相互轉(zhuǎn)換類分享
- c# Base64編碼和圖片的互相轉(zhuǎn)換代碼
- C# 將透明圖片的非透明區(qū)域轉(zhuǎn)換成Region的實例代碼
- C# 將字節(jié)流轉(zhuǎn)換為圖片的實例方法
- C#實現(xiàn)把圖片轉(zhuǎn)換成二進(jìn)制以及把二進(jìn)制轉(zhuǎn)換成圖片的方法示例
相關(guān)文章
C#如何判斷.Net?Framework版本是否滿足軟件運行需要的版本
這篇文章主要介紹了C#如何判斷.Net?Framework版本是否滿足軟件運行需要的版本問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01Unity游戲開發(fā)中的中介者模式的應(yīng)用與實現(xiàn)
中介者模式是Unity游戲開發(fā)中常用的設(shè)計模式之一,用于減少對象之間的直接耦合,通過引入中介者來協(xié)調(diào)對象之間的交互。通過中介者模式,游戲?qū)ο罂梢愿屿`活地進(jìn)行交互和協(xié)同工作,降低系統(tǒng)復(fù)雜度,使代碼更加易于維護(hù)和擴展2023-05-05vscode設(shè)置Fira_Code字體及改變編輯器字體、背景顏色的代碼詳解
這篇文章主要介紹了vscode設(shè)置Fira_Code字體及改變編輯器字體、背景顏色,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08DevExpress實現(xiàn)GridControl列頭繪制Checkbox的方法
這篇文章主要介紹了DevExpress實現(xiàn)GridControl列頭繪制Checkbox的方法,需要的朋友可以參考下2014-08-08