C#中Base64字符串与Images相互转换
在项目中有时候图片是以Base64位格式存储在数据库中的,那么我们在不改变存储方式的情况下,要把图片显示出来就需要在代码中作一个转化,当然转化也非常简单,下面先把代码贴上来:
/// <summary>
/// 把图片转化为base64字符串,传入图片路径
/// </summary>
/// <param name="Imagefilename"></param>
/// <returns></returns>
protected string ImgToBase64String(string Imagefilename)
{
try
{
Bitmap bmp = new Bitmap(Imagefilename);
MemoryStream ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] arr = new byte[ms.Length];
ms.Position = 0;
ms.Read(arr, 0, (int)ms.Length);
ms.Close();
return Convert.ToBase64String(arr);
}
catch (Exception ex)
{
return null;
}
}
/// <summary>
/// 把base64字符串转化为图片,传入base64字符串
/// </summary>
/// <param name="strbase64"></param>
/// <returns></returns>
protected Bitmap Base64StringToImage(string strbase64)
{
try
{
byte[] arr = Convert.FromBase64String(strbase64);
MemoryStream ms = new MemoryStream(arr);
Bitmap bmp = new Bitmap(ms);
bmp.Save(@"d:\test.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
ms.Close();
return bmp;
}
catch (Exception ex)
{
return null;
}
}
今天我遇到了另一种情况,就是需要在webform上直接把图片显示出来,那么我们知道Images控件是需要赋值Src路径才可以显示图片的,那么把base64转化完图片后再保存一下然后显示出来显然是不可取的,那么如何处理呢?其实很简单,一句话就解决了:
ASPxPortraitPic.ImageUrl = "data:image/png;base64," + userModel.BiopsyPath;
userModel.BiopsyPath就是Base64字符串,直接赋值给Images的ImageUrl属性就可以了。
版权声明:
作者:兴兴
文章:C#中Base64字符串与Images相互转换
链接:https://www.wujiyi.com/notes/876
文章版权归本站所有,未经授权请勿转载。
作者:兴兴
文章:C#中Base64字符串与Images相互转换
链接:https://www.wujiyi.com/notes/876
文章版权归本站所有,未经授权请勿转载。
THE END






