Ich frage mich, ob mir jemand hier eine Anleitung geben könnte. Ich möchte in der Lage sein, jedes Bild auf einer Webseite programmatisch so schnell wie möglich zu erhalten. Das ist, was ich zur Zeit mache: (beachten Sie, dass klar ist ein WebBrowser-Steuerelement)Bilder schnell von einer Webseite holen
if (clear.ReadyState == WebBrowserReadyState.Complete)
{
doc = (IHTMLDocument2)clear.Document.DomDocument;
sobj = doc.selection;
body = doc.body as HTMLBody;
sobj.clear();
range = body.createControlRange() as IHTMLControlRange;
for (int j = 0; j < clear.Document.Images.Count; j++)
{
img = (IHTMLControlElement)clear.Document.Images[j].DomElement;
HtmlElement ele = clear.Document.Images[j];
string test = ele.OuterHtml;
string test2 = ele.InnerHtml;
range.add(img);
range.select();
range.execCommand("Copy", false, null);
Image image = Clipboard.GetImage();
if (image != null)
{
temp = new Bitmap(image);
Clipboard.Clear();
......Rest of code ...........
}
}
}
Allerdings finde ich dies für eine Menge von Bildern langsam sein kann, und zusätzlich hijacks es meine Zwischenablage. Ich habe mich gefragt, ob es einen besseren Weg gibt?
Anstatt zu kopieren und einzufügen, warum greifen Sie nicht einfach die URL und laden Sie das Bild direkt herunter?Dies wäre auch viel weniger ressourcenintensiv, wenn Sie 'HttpWebRequest' und' HttpWebResponse' anstelle eines Browser-Steuerelements verwenden. –
Aber wird nicht ein HttpWebRequest/Response erstellen, scannen und dann jedes Bild einzeln abrufen dauert länger als das Holen der Webseite als ein Ganzes mit den Bildern und durchscannen? Ich bin nicht wirklich mit Ressourcen beschäftigt, nur mit der Geschwindigkeit – Megatron
Siehe Antwort ... ein bisschen lang für Kommentare! –