Ich verwende das WebBrowser-Steuerelement in C# in an application, um HTML anzuzeigen. Alle Daten stammen aus einer Datenbank, also erstelle ich eine ganze Seite mit Inline-CSS im Speicher und sende sie an den Browser.Anzeigen eines Bilds in einem WebBrowser-Steuerelement ohne Zugriff auf externe Dateien
Aber jetzt möchte ich Bilder unterstützen, was ein Problem zu sein scheint, weil ich die Bilder nicht auf Festplatte speichern möchte, nicht einmal in einem Temp Directory. Ich bin mir der data: URI Scheme bewusst, aber das scheint zu begrenzt zu sein.
Ich frage mich: Kann ich irgendwie JavaScript verwenden, um dynamisch ein Bild zu generieren, gegeben einen Strom von Bytes, im Wesentlichen spiegeln die Daten: Schema mit JavaScript? Oder gibt es eine andere Möglichkeit, Bilder anzuzeigen, d. H. Mit GDI +?
Ich kann bei Bedarf einige Annahmen über die Bilder machen, d. H. Ich kann den Benutzer zwingen, die Breite und Höhe anzugeben, aber ich kann die Position nicht wirklich erzwingen, es ist schließlich HTML. Ich kann auch zwingen, dass alle Bilder in einem bestimmten Format vorliegen, im Grunde alles, was dazu beitragen könnte, dies zu lösen.
Edit: Könnte ich vielleicht etwas wie VML missbrauchen, um Bitmap-Daten anzuzeigen? Ich kann Canvas oder SVG nicht verwenden, wie es scheint (beide in IE und daher in MSHTML nicht unterstützt?)
Bearbeiten 2: VML würde funktionieren, aber die Prozessorlast ist verrückt. Also werde ich entweder einen Webserver implementieren, um Dateien (wie Cassini) zu liefern oder versuche die Silverlight approach in meiner anderen Frage.
hmmm ... That Ist eigentlich nicht so viel von einem Hack. Das einzige mögliche Problem ist eine Firewall beschwert sich über meine Anwendung auf einem Port zu hören, aber es könnte auf 127.0.0.1: unused_port verbinden und die Bilder dienen. Denken Sie darüber nach, das ist eine saubere Lösung. –