public class Base64ImageExtractor
{
/// <summary>
/// 内容匹配base图片并保存到本地
/// </summary>
/// <param name="inputText">内容</param>
public static void Extract(string inputText)
{
//匹配所有base64格式图片的正则表达式
string pattern = @"data:image/(?<type>.+?);base64,(?<data>[^""]+)";
Regex regex = new Regex(pattern, RegexOptions.Compiled);
MatchCollection matches = regex.Matches(inputText);
int index = 0;
foreach (Match match in matches)
{
string type = match.Groups["type"].Value;
string data = match.Groups["data"].Value;
byte[] bytes = Convert.FromBase64String(data);
string fileName = "image_" + index.ToString() + "." + type;
using (FileStream fs = new FileStream(fileName, FileMode.Create))
{
fs.Write(bytes, 0, bytes.Length);
}
index++;
}
}
}
方法调用
string inputText = @"<p>这是一张base64格式的图片:<img src=\""data:image/png;base64,iVBORw0KGg...\"" /></p>";
Base64ImageExtractor.Extract(inputText);