2017-06-14 4 views
-1

HellowKonvertieren HTML-Quellcode in Bild von C#

Ich möchte HTML-Quellcode in Bild durch Code C# konvertieren. Ich habe eine Zeichenfolge, die den Quellcode enthalten, und ich möchte Bild von dieser Zeichenfolge erstellen. Ich versuche, es ist mit System.Drawing.Image.FromStream Funktion und ich habe Fehler: Parameter ist nicht gültig.

Der Code ist angehängt:

{

string content1 = "<Html><body><div>test</div><br/><img src='\\...\\...\\...\\.....png' width='250' height='140'></body></Html>"; 
       byte[] b = Encoding.ASCII.GetBytes(content1); 
       using (var ms = new MemoryStream((b))) 
       { 
        if (ms != null) 
        { 
         Image img = System.Drawing.Image.FromStream(ms); 
         img.Save(@"D:\pic.png", System.Drawing.Imaging.ImageFormat.Png); 
         img.Dispose(); 
         ms.Close(); 
        } 
       } 

}

Ich habe diesen Fehler in Zeile: System.Drawing.Image.FromStream (ms).

Danke.

+0

Sie können es nicht so machen. Sie müssen das Bild zuerst herunterladen – MickyD

+0

Wenn Sie die Bilder herunterladen möchten, müssen Sie die HTML analysieren, finden Sie die '' Elemente, laden Sie ihre Quellbilder und dann müssen Sie nichts konvertieren, wie Sie schon haben die Image-Dateien fertig. Der HTML-Code selbst enthält keine Bilddaten (außer sie sind [eingebettet als Daten-URL] (https://stackoverflow.com/questions/1207190/embedding-base64-images)). Wenn Sie diese HTML-Zeichenfolge stattdessen auf einer Webseite rendern und dann diese Webseite in ein Bild rendern möchten, lesen Sie die Informationen unter [HTML-Zeichenfolge in Bild konvertieren] (https://stackoverflow.com/questions/17832304/convert-html-string-to- Bild). – CodeCaster

+0

@CodeCaster, außer wenn er tatsächlich ein HTML-Rendering will ... – Adrian

Antwort

0

Sie müssen einen Headless-Browser (z. B. Headless Chrome oder Phantomjs) ausführen, um den HTML-Code zu rendern und Screenshots zu erstellen.

Siehe zum Beispiel https://medium.com/@dschnr/using-headless-chrome-as-an-automated-screenshot-tool-4b07dffba79a oder Selenium, how to take screenshot without opening the browser?.

+1

Auch Open Source [CefSharp] (https://github.com/cefsharp/CefSharp) wird hilfreich sein. –

+0

Tahnks für die Antwort, aber ich brauche diesen Code für das Plugin in der dynamischen crm 2016, und im Plugin ich benutze nicht mit dem Browser, um HTML-Datei zu öffnen. – Racheli