public static class PhotoImg
{
public static void PhtotToFile(ref DataTable data)
{
try
{
if (!data.Columns.Contains("ImgUrl"))
{
data.Columns.Add("ImgUrl", typeof(string));
}
DataView dvTemp = data.DefaultView;
DataTable dataTable = dvTemp.ToTable(true, "ID");
foreach (DataRow item in dataTable.Rows)
{
string path_wjx = System.AppDomain.CurrentDomain.BaseDirectory +@"PhotoImg\" + item["ID"].ToString();
if (!Directory.Exists(path_wjx))//如果路径不存在
{
Directory.CreateDirectory(path_wjx);//创建一个路径的文件夹
}
}
foreach (DataRow item in data.Rows)
{
if (string.IsNullOrEmpty(item["Base64"].ToString()))
{
continue;
}
string path = @"PhotoImg\" + item["ID"].ToString() +@"\"+ item["Name"] + ".jpg";
string jueduipath = System.AppDomain.CurrentDomain.BaseDirectory + path;
//将图片保存在本地
byte[] bytes = Convert.FromBase64String(item["Base64"].ToString());
MemoryStream memoryStream = new MemoryStream(bytes, 0, bytes.Length);
memoryStream.Write(bytes, 0, bytes.Length);
Image mImage = Image.FromStream(memoryStream);
// 图片名称
mImage.Save(jueduipath);
/ 图片保存
//Bitmap bp = new Bitmap(mImage);
//文件相对路径
//bp.Save(jueduipath, System.Drawing.Imaging.ImageFormat.Jpeg);//注意保存路径
item["ImgUrl"] = path;
}
data.Columns.Remove("Base64");//移除原来的base64数据,如果是Webapi返回json格式数据,那么必将移除,否则接口卡死
}
catch (Exception ex)
{
data.Columns.Remove("Base64");
}
}
}
C# base64图片数据生成图片并保持在本地,且返回图片url地址,解决Webapi 返回JSON格式含图片base64数据时接口延迟高,卡死问题。
最新推荐文章于 2024-05-25 16:51:34 发布