webbrowser 实现“图片另存为…”功能
//以下是ToolStripMenuItem.Click事件中的内容
try
{
ContextMenuStrip cms = (ContextMenuStrip)((ToolStripMenuItem)sender).GetCurrentParent();
SzqControls.ExWebBrowser browser = GetBrowser(sender);
Point cpoint = browser.PointToClient(cms.Bounds.Location);
HtmlElement current = _ActiveBrowser.Document.GetElementFromPoint(cpoint);
string src = current.GetAttribute("src");
string fileFormat = src.Substring(src.LastIndexOf('.')+1);
string filter = fileFormat.ToUpper() + "|*." + fileFormat + "|所有文件|*.*";
string fName = src.Substring(src.LastIndexOf('/')+1);
sfd.Filter = filter;
sfd.FileName = fName;
if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
Image img = GetImage(browser, current);
img.Save(sfd.FileName);
}
}
catch(Exception ex)
{
MessageBox.Show("保存图片失败,原因是:"+ex.Message);
}
/// <summary>
/// 获取图像内容
/// </summary>
/// <param name="browser">显示图像的浏览器控件</param>
/// <param name="imgElement">从浏览器中读取到的img</param>
private static Image GetImage(SzqControls.ExWebBrowser browser, HtmlElement imgElement)
{
HTMLDocument doc = (HTMLDocument)browser.Document.DomDocument;
HTMLBody body = (HTMLBody)doc.body;
IHTMLControlRange rang = (IHTMLControlRange)body.createControlRange();
IHTMLControlElement img = (IHTMLControlElement)(imgElement.DomElement);
rang.add(img);
rang.execCommand("Copy", false, null);
Image regImg = Clipboard.GetImage();
Clipboard.Clear();
return regImg;
}
浙公网安备 33010602011771号