none
WebBrowser RRS feed

  • Frage

  • Hallo Leute,
    ich möchte ein einzelnes Bild von einer Homepage in einer Picturebox oder einem System.Windows.Forms.WebBrowser anzeigen.
    Die Homepage (speziell angepasst) liefert mir den HTML-Quellcode mit nur einem Bild. (siehe unterhalb)

    Jetzt habe ich 2 Möglichkeiten:
    1) mittels Stringfunktionen die src=https://...xyz.jpg herauszuholen und mittels WebClient.DownloadData das Bild in einen Stream zu laden und danach in einer Picturebox anzeigen.
    Nachteil dabei ist, dass es zwar funktioniert aber extrem "unsauber" programmiert ist.

    2) ich weise die Url gleich einem WebBrowser-Control zu
    Der Nachteil dabei ist, dass ich es nicht schaffe das Bild auf die Größe des WebBrowsers angepasst darzustellen (wie zB. mittels StrechImage einer Picturebox).

    Wie gehe ich dabei am Besten vor?

    <div class="ImageTest">
    <img src="https://****.****.at/****/images/xyz.jpg"  alt="trrffgjjhg" title="kkkkkkkkk"/>
    </div> 

    Vielen Dank im Voraus


    Christian Tauschek


    Samstag, 20. Mai 2017 00:08

Antworten

  • Hallo Christian.

    wenn die Homepage speziell für dich angepasst wurde, kann man doch evtl. auch gleich was anderes machen, nämlich einen kleinen Webservice, der dir die Daten in einer automatisert verarbeitbaren Form zurückgibt.

    Falls das nicht geht, würde ich dennoch Variante 1 vorziehen, da das doch erheblich weniger Overhead ist als ein komplettes WebBrowser Control inkl. Laden und Anzeigen einer vollständigen Website, ... zu integrieren.

    Poste doch mal den Code, mit dem Du das Bild suchst und lädst. Evtl. kann man da noch was optimieren (RegEx, ggfs. auch das HtmlAgilityPack, wenn es nicht nur ein Bild sein soll, ...)


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Samstag, 20. Mai 2017 05:34
    Moderator
  • Hallo

    alternativ, wenn der Erzeuger der Website für dich einen speziellen Kommentar einfügt, z.B.:

     <!-- MySpecialKey=(delimiter)hier_steht_die_Image_Url(delimiter) -->

    kannst du eigentlich sehr simpel die Url extrahieren (Split()) und z.B. mit einem WebClient die (Bild)Datei herunterladen und dann damit machen, was gewünscht wird.

    Gruß

    Samstag, 20. Mai 2017 18:28

Alle Antworten

  • Hallo Christian.

    wenn die Homepage speziell für dich angepasst wurde, kann man doch evtl. auch gleich was anderes machen, nämlich einen kleinen Webservice, der dir die Daten in einer automatisert verarbeitbaren Form zurückgibt.

    Falls das nicht geht, würde ich dennoch Variante 1 vorziehen, da das doch erheblich weniger Overhead ist als ein komplettes WebBrowser Control inkl. Laden und Anzeigen einer vollständigen Website, ... zu integrieren.

    Poste doch mal den Code, mit dem Du das Bild suchst und lädst. Evtl. kann man da noch was optimieren (RegEx, ggfs. auch das HtmlAgilityPack, wenn es nicht nur ein Bild sein soll, ...)


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Samstag, 20. Mai 2017 05:34
    Moderator
  • Hallo

    alternativ, wenn der Erzeuger der Website für dich einen speziellen Kommentar einfügt, z.B.:

     <!-- MySpecialKey=(delimiter)hier_steht_die_Image_Url(delimiter) -->

    kannst du eigentlich sehr simpel die Url extrahieren (Split()) und z.B. mit einem WebClient die (Bild)Datei herunterladen und dann damit machen, was gewünscht wird.

    Gruß

    Samstag, 20. Mai 2017 18:28
  • Hallo, leider ist ein Anpassung der Webseite nicht möglich. Unter "speziell angepasst" habe ich gemeint, dass die Links unter Angabe der Artikelnummer zu einem Bild des Artikels führen. Christian

    Christian Tauschek

    Donnerstag, 25. Mai 2017 20:47
  • Hallo Stefan, ich verwende das Webbrowsercontrol und weise diesem die URL zu. Im Document_Completed Event durchlaufe ich dessen Images und weise dessen "src" einer Picturebox.Imagelocation zu. Das Ganze funktioniert ganz gut und auch asynchron. MfG Christian

    Christian Tauschek

    Donnerstag, 25. Mai 2017 20:55