110,539
社区成员
发帖
与我相关
我的任务
分享
Regex 图片网址 = new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);
private void 粘贴_Click(object sender, EventArgs e)
{
this.BeginInvoke(new Action(() =>
{
try
{
/*上面代码这样捕获404异常通过WebException*/
}
catch (WebException Ts)
{
MessageBox.Show("请重新选择图片!" + Ts.ToString().Substring(0, Ts.ToString().IndexOf("在") - 1), "遗憾!无法获取图片数据?");
}
}));
}
this.Invoke(new Action(() =>
{
IDataObject 粘贴数据 = Clipboard.GetDataObject();
Object 网址 = 粘贴数据.GetData(DataFormats.Html);
List<string> 图片集 = new List<string>();
Regex 图片网址 = new Regex(@"(?i)<img[^>]*?src=(['""])(?<imgUrl>[^'""]+?\.(jpe?g|gif|png|bmp|tiff|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw))\1[^>]*?>", RegexOptions.IgnoreCase);
if (网址 != null)
{
MatchCollection 集合 = 图片网址.Matches(网址.ToString());
foreach (Match 元素 in 集合)
图片集.Add(元素.Groups["imgUrl"].Value);
foreach (string 图址 in 图片集)
{
Image 获取网络图片 = Image.FromStream(WebRequest.Create(图址).GetResponse().GetResponseStream());
Clipboard.SetImage(获取网络图片); if (粘贴数据.GetDataPresent(DataFormats.Bitmap)) 富文本编辑.Paste();
}
}
}));