C#中圖片、二進制與字符串的相互轉(zhuǎn)換方法
本文實例講述了C#中圖片、二進制與字符串的相互轉(zhuǎn)換方法。分享給大家供大家參考,具體如下:
protected void Button1_Click(object sender, EventArgs e)
{
//圖片轉(zhuǎn)二進制
byte[] imageByte = GetPictureData(Server.MapPath("./uploadfile/111.png"));
//二進制轉(zhuǎn)換成字符串
string picStr = Convert.ToBase64String(imageByte);
//輸出字符串
Response.Write(picStr);
//字符串轉(zhuǎn)二進制
byte[] imageBytes = Convert.FromBase64String(picStr);
//讀入MemoryStream對象
MemoryStream memoryStream = new MemoryStream(imageBytes, 0, imageBytes.Length);
memoryStream.Write(imageBytes, 0, imageBytes.Length);
//二進制轉(zhuǎn)成圖片保存
System.Drawing.Image image = System.Drawing.Image.FromStream(memoryStream);
image.Save(Server.MapPath("./uploadfile/222.png"));
}
/// <summary>
/// 二進制流轉(zhuǎn)圖片
/// </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>
/// 圖片轉(zhuǎn)二進制
/// </summary>
/// <param name="imagepath">圖片地址</param>
/// <returns>二進制</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)二進制
/// </summary>
/// <param name="imgPhoto">圖片對象</param>
/// <returns>二進制</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)換工具,非常具有實用價值:
在線圖片轉(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è)計入門教程》及《C#程序設(shè)計之線程使用技巧總結(jié)》
希望本文所述對大家C#程序設(shè)計有所幫助。
相關(guān)文章
C#找不到類型名"SqlConnection"的有效解決方法
最近在使用c#鏈接SqlServer的時候遇到了錯誤,通過查找相關(guān)資料終于解決了,所以下面這篇文章主要給大家介紹了關(guān)于C#找不到類型名"SqlConnection"的有效解決方法,需要的朋友可以參考下2023-02-02
C# 9 新特性——record的相關(guān)總結(jié)
這篇文章主要介紹了C# 9 新特性——record的相關(guān)總結(jié),幫助大家更好的理解和學習使用c# 9的新特性,感興趣的朋友可以了解下2021-02-02
C#調(diào)用QQ_Mail發(fā)送郵件實例代碼兩例
這篇文章介紹了C#調(diào)用QQ_Mail發(fā)送郵件的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04

