C#中圖片、二進(jìn)制與字符串的相互轉(zhuǎn)換方法
本文實(shí)例講述了C#中圖片、二進(jìn)制與字符串的相互轉(zhuǎn)換方法。分享給大家供大家參考,具體如下:
protected void Button1_Click(object sender, EventArgs e)
{
//圖片轉(zhuǎn)二進(jìn)制
byte[] imageByte = GetPictureData(Server.MapPath("./uploadfile/111.png"));
//二進(jìn)制轉(zhuǎn)換成字符串
string picStr = Convert.ToBase64String(imageByte);
//輸出字符串
Response.Write(picStr);
//字符串轉(zhuǎn)二進(jìn)制
byte[] imageBytes = Convert.FromBase64String(picStr);
//讀入MemoryStream對(duì)象
MemoryStream memoryStream = new MemoryStream(imageBytes, 0, imageBytes.Length);
memoryStream.Write(imageBytes, 0, imageBytes.Length);
//二進(jìn)制轉(zhuǎn)成圖片保存
System.Drawing.Image image = System.Drawing.Image.FromStream(memoryStream);
image.Save(Server.MapPath("./uploadfile/222.png"));
}
/// <summary>
/// 二進(jìn)制流轉(zhuǎn)圖片
/// </summary>
/// <param name="streamByte">二進(jìn)制流</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>
/// 圖片轉(zhuǎn)二進(jìn)制
/// </summary>
/// <param name="imagepath">圖片地址</param>
/// <returns>二進(jìn)制</returns>
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;
}
/// <summary>
/// 圖片轉(zhuǎn)二進(jìn)制
/// </summary>
/// <param name="imgPhoto">圖片對(duì)象</param>
/// <returns>二進(jìn)制</returns>
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;
}
PS:這里小編再給大家推薦本站的一款圖片轉(zhuǎn)BASE64格式的在線轉(zhuǎn)換工具,非常具有實(shí)用價(jià)值:
在線圖片轉(zhuǎn)換BASE64工具:
http://tools.jb51.net/transcoding/img2base64
更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》及《C#程序設(shè)計(jì)之線程使用技巧總結(jié)》
希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。
- C#實(shí)現(xiàn)tostring轉(zhuǎn)換成16進(jìn)制的方法
- C#實(shí)現(xiàn)十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制的幾種方式
- C#實(shí)現(xiàn)字符串進(jìn)制轉(zhuǎn)換方法匯總
- C#實(shí)現(xiàn)十六進(jìn)制與十進(jìn)制相互轉(zhuǎn)換以及及不同進(jìn)制表示
- C#實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換
- C# 進(jìn)制轉(zhuǎn)換的實(shí)現(xiàn)(二進(jìn)制、十六進(jìn)制、十進(jìn)制互轉(zhuǎn))
- C#實(shí)現(xiàn)2~36進(jìn)制轉(zhuǎn)換的完整代碼
相關(guān)文章
C#找不到類型名"SqlConnection"的有效解決方法
最近在使用c#鏈接SqlServer的時(shí)候遇到了錯(cuò)誤,通過查找相關(guān)資料終于解決了,所以下面這篇文章主要給大家介紹了關(guān)于C#找不到類型名"SqlConnection"的有效解決方法,需要的朋友可以參考下2023-02-02
C#多線程同步不同實(shí)現(xiàn)方式小結(jié)
本文主要介紹了C#多線程同步不同實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
C# 9 新特性——record的相關(guān)總結(jié)
這篇文章主要介紹了C# 9 新特性——record的相關(guān)總結(jié),幫助大家更好的理解和學(xué)習(xí)使用c# 9的新特性,感興趣的朋友可以了解下2021-02-02
C#調(diào)用QQ_Mail發(fā)送郵件實(shí)例代碼兩例
這篇文章介紹了C#調(diào)用QQ_Mail發(fā)送郵件的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04

