经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C# » 查看文章
C# Base64Helper - hi-latolo
来源:cnblogs  作者:hi-latolo  时间:2018/10/25 9:37:18  对本文有异议
  1. public static class Base64Helper
  2. {
  3. /// <summary>
  4. /// base64字符保存图片到本
  5. /// </summary>
  6. /// <param name="filePath">保存的图片完整路径</param>
  7. /// <param name="base64String">base64字符串</param>
  8. public static void Base64SaveImage(string filePath, string base64String)
  9. {
  10. try
  11. {
  12. //如果base64是通过http传过来的,要注意其中的%、,、空格等转换,C#规定base64的长度必须是4的倍数,有个别语言是2的倍数,补上==。
  13. base64String = base64String.Trim().Replace("%", "").Replace(",", "").Replace(" ", "+");
  14. if (base64String.Length % 4 != 0)
  15. {
  16. base64String += "==";
  17. }
  18. byte[] arr2 = Convert.FromBase64String(base64String);
  19. using (MemoryStream ms2 = new MemoryStream(arr2))
  20. {
  21. System.Drawing.Bitmap bmp2 = new System.Drawing.Bitmap(ms2);
  22. bmp2.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg);
  23. bmp2.Dispose();
  24. }
  25. }
  26. catch (Exception ex)
  27. {
  28. LogHelper.WriteLog("图片保存异常:" + ex.ToString());
  29. }
  30. }
  31. public static string ImgToBase64String(string Imagefilename)
  32. {
  33. try
  34. {
  35. Bitmap bmp = new Bitmap(Imagefilename);
  36. MemoryStream ms = new MemoryStream();
  37. bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
  38. byte[] arr = new byte[ms.Length];
  39. ms.Position = 0;
  40. ms.Read(arr, 0, (int)ms.Length);
  41. ms.Close();
  42. return Convert.ToBase64String(arr);
  43. }
  44. catch (Exception ex)
  45. {
  46. LogHelper.WriteLog("图片读取异常:" + ex.ToString());
  47. return null;
  48. }
  49. }
  50. public static string ImageToBase64(string path)
  51. {
  52. byte[] bytes = GetPictureData(path);
  53. string base64 = Convert.ToBase64String(bytes);
  54. return base64;
  55. }
  56. public static Bitmap Base64ToImage(string base64)
  57. {
  58. byte[] arr = Convert.FromBase64String(base64);
  59. MemoryStream ms = new MemoryStream(arr);
  60. Bitmap bmp = new Bitmap(ms);
  61. ms.Close();
  62. return bmp;
  63. }
  64. public static byte[] GetPictureData(string imagePath)
  65. {
  66. FileStream fs = new FileStream(imagePath, FileMode.Open);
  67. byte[] byData = new byte[fs.Length];
  68. fs.Read(byData, 0, byData.Length);
  69. fs.Close();
  70. return byData;
  71. }
  72. }

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号