2009-07-10 3 views
0

J'utilise un contrôle WebBrowser dans VB.Net pour charger un site Web. À ce stade, la propriété WebBrowser.Document.Images renvoie une collection de HtmlElement qui sont considérés comme des images. Ce que j'essaie de faire à ce stade, est de prendre un HtmlElement particulier qui représente une image et de le transformer en un System.Drawing.Image afin que je puisse le manipuler. Mais je ne peux pas comprendre comment.Conversion d'un HtmlElement en une image?

J'ai essayé de chercher une réponse, mais je n'ai rien trouvé. "WebBrowser", comme il se trouve, semble être un mot-clé très populaire.

Quelqu'un peut-il me diriger dans la bonne direction?

EDIT: Il a été suggéré que j'utilise l'attribut SRC du HtmlElement pour télécharger l'image; mais l'image peut être dynamique - ce qui signifie que l'image que je télécharge peut être séparée de l'image sur le site web .... donc, cela ne fonctionnera pas pour mes fins.

+0

Essayez de mettre l'élément d'image dans le presse-papiers. c'est-à-dire Clipboard.SetData (browser1.document.images (1)). Est-ce que cela fonctionne? – shahkalpesh

Répondre

3

Je n'ai pas travaillé avec l'objet WebBrowser, mais de l'image que vous devriez être en mesure d'obtenir le src attribut en quelque sorte, et en utilisant cela, vous pouvez faire une demande que:

HttpWebRequest wr = (HttpWebRequest) WebRequest.Create(url); 
wr.Method = "GET"; 

et alors vous devriez être en mesure de traiter le flux de réponse sous forme d'image:

Image img = System.Drawing.Image.FromStream(wr.GetResponse().GetResponseStream()); 
img.Save(...); 
+0

+1 HttpWebRequest. Je n'ai pas réalisé qu'il avait une méthode 'GetResponseStream'. –

+0

Ceci est une bonne réponse; mais à moins que je ne sois mal compris, ça ne marche pas vraiment pour ma situation. Lorsque je charge le site Web dans WebControl, l'image générée et affichée dans le navigateur Web est celle dont j'ai besoin. Si j'utilise l'attribut src et que je fais une seconde requête, l'image renvoyée ne sera pas la même que celle de WebBrowser. –

1

Eh bien, la prochaine fois, essayez IWebBrowser comme le mot-clé. Cela devrait vous conduire à la documentation MSDN.

Je ne suis pas positif mais je ne pense pas que ce que vous voulez puisse être fait directement. Cependant, vous pouvez utiliser la propriété src par le IHTMLImgElement pour télécharger l'image pour %TEMP% et initialiser un objet System.Drawing.Image en utilisant la méthode FromStream

Questions connexes