using System; using System.Collections.Generic; using System.Configuration; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ZWL.Common { public class ImgUtil { #region base64转换为图片并返回图片路径 public static string ConvertImg(string strBase) { var base64 = strBase.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "");//将base64头部信息替换 byte[] bytes = Convert.FromBase64String(base64); MemoryStream memStream = new MemoryStream(bytes); Image mImage = Image.FromStream(memStream); //Bitmap bp = new Bitmap(mImage); Bitmap bp = PercentImage(mImage); MemoryStream ms = new MemoryStream(); string strPhotoPath = ConfigurationManager.AppSettings["Photo"].ToString(); if (!Directory.Exists(strPhotoPath)) { DirectoryInfo directoryInfo = new DirectoryInfo(strPhotoPath); directoryInfo.Create(); } strPhotoPath += "\\" + Guid.NewGuid().ToString() + ".jpg"; bp.Save(strPhotoPath, System.Drawing.Imaging.ImageFormat.Jpeg); return strPhotoPath; } /// /// 压缩图片,宽度最大为1200 /// 2023-11-29 xulu /// /// /// public static Bitmap PercentImage(System.Drawing.Image srcImage) { int newW = srcImage.Width < 1200 ? srcImage.Width : 1200; int newH = int.Parse(Math.Round(srcImage.Height * (double)newW / srcImage.Width).ToString()); try { Bitmap b = new Bitmap(newW, newH); Graphics g = Graphics.FromImage(b); g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Default; g.DrawImage(srcImage, new System.Drawing.Rectangle(0, 0, newW, newH), new System.Drawing.Rectangle(0, 0, srcImage.Width, srcImage.Height), GraphicsUnit.Pixel); g.Dispose(); return b; } catch (Exception) { return null; } } #endregion #region 图片文件转base64 public static string DocumentToBase64Str(string fileName) { try { FileStream filestream = new FileStream(fileName, FileMode.Open); byte[] bt = new byte[filestream.Length]; //调用read读取方法 filestream.Read(bt, 0, bt.Length); string base64Str = Convert.ToBase64String(bt); filestream.Close(); return base64Str; } catch (Exception ex) { return ""; } } #endregion } }