C# 圖片轉二進制/字符串 二進制/字符串反轉成圖片

jopen 9年前發布 | 1K 次閱讀 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;  
}  </pre> 


 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!