2009-07-10 4 views
0

Я использую элемент управления WebBrowser в VB.Net для загрузки веб-сайта. В этот момент свойство WebBrowser.Document.Images возвращает коллекцию HtmlElement, которые считаются изображениями.Преобразование HtmlElement в изображение?

То, что я пытаюсь сделать в этот момент, принимает конкретный элемент HtmlElement, который представляет изображение и превращает его в System.Drawing.Image, чтобы я мог манипулировать им. Но я не могу понять, как это сделать.

Я попытался найти ответ, но ничего не придумал. «WebBrowser», как оказалось, кажется очень популярным ключевым словом.

Может ли кто-нибудь указать мне правильное направление?

EDIT: Было предложено использовать атрибут SRC элемента HtmlElement для загрузки изображения; но изображение может быть динамическим - это означает, что загружаемое изображение может быть отделено от изображения на веб-сайте .... так что это не будет работать для моих целей.

+0

Попробуйте поместить элемент изображения в буфер обмена. то есть Clipboard.SetData (browser1.document.images (1)). Это вообще работает? – shahkalpesh

ответ

3

Я не работал с объектом WebBrowser, но с изображения вы должны быть в состоянии получить Src-атрибут как-то, и с помощью этого, вы можете сделать запрос на что:

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

и то вы должны быть в состоянии обработать поток ответа как изображение:

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

+1 HttpWebRequest. Я не понял, что у него есть метод GetResponseStream. –

+0

Это хороший ответ; но, если я не понимаю, это не работает для моей ситуации. Когда я загружаю веб-сайт в WebControl, изображение, сгенерированное и отображаемое в веб-браузере, является тем, которое мне нужно. Если я использую атрибут src и сделаю второй запрос, возвращаемое изображение не будет тем же изображением, что и изображение в WebBrowser. –

1

Ну, в следующий раз, попробуйте IWebBrowser в качестве ключевого слова. Это должно привести вас к документации MSDN.

Я не уверен, но я не думаю, что вы можете сделать напрямую. Тем не менее, вы можете использовать src собственность через IHTMLImgElement, чтобы загрузить изображение в %TEMP% и инициализировать System.Drawing.Image объект, используя метод FromStream

Смежные вопросы