/// <summary> /// 图片转Base64 (优化前) /// </summary> /// <param name="fileFullName"></param> /// <returns></returns> public static string ImageToBase64(string fileFullName) { try { Bitmap bmp = new Bitmap(fileFullName); MemoryStream ms = new MemoryStream(); var suffix = fileFullName.Substring(fileFullName.LastIndexOf('.') + 1, fileFullName.Length - fileFullName.LastIndexOf('.') - 1).ToLower(); var suffixName = suffix == "png" ? ImageFormat.Png : suffix == "jpg" || suffix == "jpeg" ? ImageFormat.Jpeg : suffix == "bmp" ? ImageFormat.Bmp : suffix == "gif" ? ImageFormat.Gif : ImageFormat.Jpeg; //上面一串if else 不好理解,不好修改,更不好看 bmp.Save(ms, suffixName); 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(优化后) /// </summary> /// <param name="fileFullName"></param> /// <returns></returns> public static string ImageToBase64(string fileFullName) { try { var suffix = fileFullName.Substring(fileFullName.LastIndexOf('.') + 1).ToLower(); Dictionary<string, ImageFormat> formatDic = new Dictionary<string, ImageFormat>(); formatDic.Add("png", ImageFormat.Png); formatDic.Add("jpg", ImageFormat.Jpeg); formatDic.Add("jpeg", ImageFormat.Jpeg); formatDic.Add("bmp", ImageFormat.Bmp); formatDic.Add("gif", ImageFormat.Gif);//将文件的扩展名和图片格式暂时存在字典中 ImageFormat suffixName = formatDic.ContainsKey(suffix)? formatDic[suffix]: ImageFormat.Jpeg;//根据扩展名,获取图片格式。未知的图片格式,默认Jpeg byte[] imageContentBytes; using (MemoryStream ms = new MemoryStream())//使用using语法糖,防止忘记释放资源 { using(Bitmap bmp = new Bitmap(fileFullName)) { bmp.Save(ms, suffixName); } imageContentBytes = ms.ToArray(); } return Convert.ToBase64String(imageContentBytes); } catch { return null; } }