本文實例講述了C#中圖片、二進制與字符串的相互轉換方法。分享給大家供大家參考,具體如下:
protected void Button1_Click(object sender, EventArgs e){ //圖片轉二進制 byte[] imageByte = GetPictureData(Server.MapPath("./uploadfile/111.png")); //二進制轉換成字符串 string picStr = Convert.ToBase64String(imageByte); //輸出字符串 Response.Write(picStr); //字符串轉二進制 byte[] imageBytes = Convert.FromBase64String(picStr); //讀入MemoryStream對象 MemoryStream memoryStream = new MemoryStream(imageBytes, 0, imageBytes.Length); memoryStream.Write(imageBytes, 0, imageBytes.Length); //二進制轉成圖片保存 System.Drawing.Image image = System.Drawing.Image.FromStream(memoryStream); image.Save(Server.MapPath("./uploadfile/222.png"));}/// <summary>/// 二進制流轉圖片/// </summary>/// <param name="streamByte">二進制流</param>/// <returns>圖片</returns>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;}/// <summary>/// 圖片轉二進制/// </summary>/// <param name="imagepath">圖片地址</param>/// <returns>二進制</returns>public byte[] GetPictureData(string imagepath){ //根據圖片文件的路徑使用文件流打開,并保存為byte[] FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是其他重載方法 byte[] byData = new byte[fs.Length]; fs.Read(byData, 0, byData.Length); fs.Close(); return byData;}/// <summary>/// 圖片轉二進制/// </summary>/// <param name="imgPhoto">圖片對象</param>/// <returns>二進制</returns>public byte[] PhotoImageInsert(System.Drawing.Image imgPhoto){ //將Image轉換成流數據,并保存為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;}
PS:這里小編再給大家推薦本站的一款圖片轉BASE64格式的在線轉換工具,非常具有實用價值:
在線圖片轉換BASE64工具:
http://tools.VeVB.COm/transcoding/img2base64
更多關于C#相關內容感興趣的讀者可查看本站專題:《C#常見控件用法教程》、《WinForm控件用法總結》、《C#數據結構與算法教程》、《C#面向對象程序設計入門教程》及《C#程序設計之線程使用技巧總結》
希望本文所述對大家C#程序設計有所幫助。
新聞熱點
疑難解答