.net core 需要引入ZKWeb.System.Drawing
public string base64toimg(string imgsrc)
{
var date = DateTime.Now.ToString("yyyyMMdd");
var basepath = Path.Combine(imgsavepath, "UploadFile", date);
if (!Directory.Exists(basepath))
{
Directory.CreateDirectory(basepath);
}
string imgpath = "";
string base64String = imgsrc;//base64图片字符串
base64String = base64String.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "");//对base64字符串进行处理,把数据头设置为空,只取数据
byte[] imageBytes = Convert.FromBase64String(base64String);//base64字符串存数组
MemoryStream ms = new MemoryStream(imageBytes);
System.DrawingCore.Image image = System.DrawingCore.Image.FromStream(ms);//从流中加载图片
Rectangle cropRegion = new Rectangle(10, 10, 400, 400);
Bitmap result = new Bitmap(cropRegion.Width, cropRegion.Height);
Graphics graphics = Graphics.FromImage(result);
graphics.DrawImage(image, new Rectangle(0, 0, cropRegion.Width, cropRegion.Height), cropRegion, GraphicsUnit.Pixel);
var imgname = DateTime.Now.ToString("yyyyMMddHHssfff") + ".jpg";
imgpath = basepath + "/" + imgname;//自己定义要存储的位置以及命名各式,此处命名格式为时间加后缀。
result.Save(imgpath, System.DrawingCore.Imaging.ImageFormat.Jpeg);//save(地址,图片格式)
//Bitmap bp = new Bitmap(image);//创建图片对象
//bp.Save(imgpath, System.DrawingCore.Imaging.ImageFormat.Jpeg);//save(地址,图片格式)
return imgreadpath + "/" + "UploadFile" + "/" + date + "/" + imgname;
}
Bitmap可以直接保存图片,不过有些图片太大了,所以我用Graphics截了一下