Wie bekomme ich eine C# - WebBrowser-Steuerelement zum anzeigen von jpeg-Dateien (raw)?
Weiß jemand, in .Net 2.0 - .Net 3.5 wie lädt man ein jpeg in ein System.Windows.Formen.WebControl als byte-array und mit dem richtigen MIME-types gesetzt, so wird es zeigen?
Etwas wie:
webBrowser1.DocumentStream = new MemoryStream(File.ReadAllBytes("mypic.jpg"));
webBrowser1.DocumentType = "application/jpeg";
Den webBrowser1.DocumentType scheint nur gelesen werden, also ich weiß nicht, wie Sie dies tun. Im Allgemeinen möchte ich in der Lage sein laden Sie eine beliebige Art von filesource mit einem MIME-Typ definiert in den browser zu zeigen.
Lösungen mit dem schreiben von temporären Dateien, die nicht gut sind. Momentan habe ich es gelöst mit ein wenig lokaler webserver socket-listener liefert, dass die jpeg-ich bitte um mit dem richtigen mimetype.
UPDATE: Da jemand gelöscht, eine Antwort-meine-eigene Frage wo ich die info hatte, andere verwenden könnte, ich werde es als update statt. (für diejenigen, die löschen, die Art und Weise, aktualisieren Sie bitte die Fragen mit den wichtigen Informationen).
Probe-Lösung in C# hier, das funktioniert perfekt: http://www.codeproject.com/KB/aspnet/AspxProtocol.aspx
InformationsquelleAutor Wolf5 | 2008-11-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie implementieren eine asynchrone pluggable protocol, z.B. IClassFactory, IInternetProtocol... Dann nutzen Sie CoInternetGetSession registrieren Sie Ihr Protokoll. Wenn der IE fordert Ihre Umsetzung, Sie können Ihre Bild-Daten aus dem Speicher/mime-type.
Es ist ein bisschen mühsam, aber machbar. Blick auf IInternetProtocol und austauschbare Protokolle Dokumentation auf MSDN.
InformationsquelleAutor liggett78
Können Sie nicht. Sie können nicht Sachen Bilder in Microsofts web-browser-Steuerung.
Die Beschränkung kommt von der IWebBrowser Kontrolle selbst, die .NET hüllt.
InformationsquelleAutor Ian Boyd
Wenn Sie möchten, eine Gesamt-hack, die versuchen, mit Ihrem Strom werden die HTML-Datei, die nur zeigt dein Bild. Verlieren Sie Ihr Bild in byte-stream und schreiben, das Bild auf der Festplatte.
InformationsquelleAutor Austin Salonen
Ich weiß nicht, ob der
WebBrowser
.NET control unterstützt das, aber RFC2397 definiert, wie verwenden Sie inline-Bilder. Mit dieser und einer XHTML-snippet erzeugt on-the-fly, Sie könnte möglicherweise ordnen Sie das Bild ohne die Notwendigkeit, es zu schreiben in eine Datei.Keine Ahnung, ob das die Lösung ist elegant, aber ich denke, es ist nicht. Zu meiner Entschuldigung für die nicht sicher ist, dass es ist spät in der Nacht. 🙂
Referenzen:
Ich lief einen kleinen test gestern (browsershots.org/http://aktuell.de.selfhtml.org/artikel/grafik/...), die zeigt, dass keine IE, aber IE8 nicht. 🙁 Allerdings habe ich keine Ahnung, welche Art von rendering-engine, die das WebBrowser-Steuerelement verwendet. 🙂
Das WebBrowser-Steuerelement verwendet, was version von IE, das Sie installiert haben. Dies bedeutet natürlich, dass wenn Sie führen Sie Ihre Anwendung auf einem Rechner mit IE8 dann der IE9-Funktionen, auf die Sie angewiesen sind, nicht verfügbar.
Meine Frage an Herrn hangy. Wie zur Hölle Sie es geschafft, fügen Sie "text/html" DocumentType, da diese Eigenschaft hat nur get-Methode implementiert...?
InformationsquelleAutor hangy
IE unterstützt nur 32 KB für inline-Bilder in base64-Codierung, also keine gute Lösung.
InformationsquelleAutor Seeker
Versuchen die
res:
Protokoll.Ich habe es nicht versucht, mit ein .net dll, aber diese post sagt, sollte es funktionieren. Auch wenn es erfordert, eine C++ - dll ist es viel einfacher zu verwenden, soweit Codierung geht.
Habe ich einen post, die Ihnen zeigen, wie hier , zeigt Ihnen, wie Sie die Ressource-Skript und verwenden Sie die res: - Protokoll richtig.
InformationsquelleAutor Tim Ludwinski