C#中图片、二进制与字符串的相互转换方法
本文实例讲述了C#中图片、二进制与字符串的相互转换方法。分享给大家供大家参考,具体如下:
protectedvoidButton1_Click(objectsender,EventArgse)
{
//图片转二进制
byte[]imageByte=GetPictureData(Server.MapPath("./uploadfile/111.png"));
//二进制转换成字符串
stringpicStr=Convert.ToBase64String(imageByte);
//输出字符串
Response.Write(picStr);
//字符串转二进制
byte[]imageBytes=Convert.FromBase64String(picStr);
//读入MemoryStream对象
MemoryStreammemoryStream=newMemoryStream(imageBytes,0,imageBytes.Length);
memoryStream.Write(imageBytes,0,imageBytes.Length);
//二进制转成图片保存
System.Drawing.Imageimage=System.Drawing.Image.FromStream(memoryStream);
image.Save(Server.MapPath("./uploadfile/222.png"));
}
///<summary>
///二进制流转图片
///</summary>
///<paramname="streamByte">二进制流</param>
///<returns>图片</returns>
publicSystem.Drawing.ImageReturnPhoto(byte[]streamByte)
{
System.IO.MemoryStreamms=newSystem.IO.MemoryStream(streamByte);
System.Drawing.Imageimg=System.Drawing.Image.FromStream(ms);
returnimg;
}
///<summary>
///图片转二进制
///</summary>
///<paramname="imagepath">图片地址</param>
///<returns>二进制</returns>
publicbyte[]GetPictureData(stringimagepath)
{
//根据图片文件的路径使用文件流打开,并保存为byte[]
FileStreamfs=newFileStream(imagepath,FileMode.Open);//可以是其他重载方法
byte[]byData=newbyte[fs.Length];
fs.Read(byData,0,byData.Length);
fs.Close();
returnbyData;
}
///<summary>
///图片转二进制
///</summary>
///<paramname="imgPhoto">图片对象</param>
///<returns>二进制</returns>
publicbyte[]PhotoImageInsert(System.Drawing.ImageimgPhoto)
{
//将Image转换成流数据,并保存为byte[]
MemoryStreammstream=newMemoryStream();
imgPhoto.Save(mstream,System.Drawing.Imaging.ImageFormat.Bmp);
byte[]byData=newByte[mstream.Length];
mstream.Position=0;
mstream.Read(byData,0,byData.Length);
mstream.Close();
returnbyData;
}
PS:这里小编再给大家推荐本站的一款图片转BASE64格式的在线转换工具,非常具有实用价值:
在线图片转换BASE64工具:
http://tools.jb51.net/transcoding/img2base64
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》
希望本文所述对大家C#程序设计有所帮助。