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.networkcabin.com/notes/876
文章版权归本站所有,未经授权请勿转载。
作者:兴兴
文章:C#中Base64字符串与Images相互转换
链接:https://www.networkcabin.com/notes/876
文章版权归本站所有,未经授权请勿转载。
THE END