环境:net framework 4.5.2
using System;using System.Collections.Generic;using System.Drawing;using System.Drawing.Imaging;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;public static string Base64ToImg(string base64Code) {//先剪切string[] Image_Array = base64Code.Split(',');byte[] Arr = Convert.FromBase64String(Image_Array[1]);try {using (MemoryStream stream = new MemoryStream(Arr)) {var Source = new Bitmap(stream);//转成jpgvar Eps = new EncoderParameters(1);var Ep = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 85L);Eps.Param[0] = Ep;ImageCodecInfo jpsEncodeer = null;if (Image_Array[0].ToLower() == "data:image/jpeg;base64") {jpsEncodeer = GetEncoder(ImageFormat.Jpeg);} else if (Image_Array[0].ToLower() == "data:image/png;base64") {jpsEncodeer = GetEncoder(ImageFormat.Png);} else {throw new Exception("");}//创建路径string FilePath = AppDomain.CurrentDomain.BaseDirectory + "/File/Images/";if (!System.IO.Directory.Exists(FilePath)) System.IO.Directory.CreateDirectory(FilePath);//声明文件类型string FileName = string.Format("{0}.jpg", Guid.NewGuid().ToString());//保存图片Source.Save(string.Format("{0}{1}", FilePath, FileName), jpsEncodeer, Eps);//释放资源Source.Dispose();Ep.Dispose();Eps.Dispose();return string.Format("/File/Images/{0}", FileName);};} catch (Exception) {return null;}}/// <summary>/// 获取文件对象/// </summary>/// <param name="format"></param>/// <returns></returns>public static ImageCodecInfo GetEncoder(ImageFormat format) {ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();foreach (ImageCodecInfo codec in codecs) {if (codec.FormatID == format.Guid)return codec;}return null;}
