2016-04-15 4 views
-1

Seite in Ich habe wie diese wie in asp.net zu Bild konvertiert

protected void Page_Load(object sender, EventArgs e) 
    { 
     //saveURLToImage("http://localhost:2564/Pagetoimage.aspx?OrderId=7"); 
     saveURLToImage("http://www.w3schools.com/"); 

    } 

    private void saveURLToImage(string url) 
    { 
     if (!string.IsNullOrEmpty(url)) 
     { 
      string content = ""; 

      System.Net.WebRequest webRequest = WebRequest.Create(url); 
      System.Net.WebResponse webResponse = webRequest.GetResponse(); 
      System.IO.StreamReader sr = new StreamReader(webResponse.GetResponseStream(), System.Text.Encoding.GetEncoding("UTF-8")); 
      content = sr.ReadToEnd(); 
      //save to file 
      byte[] b = Convert.FromBase64String(content); 
      System.IO.MemoryStream ms = new System.IO.MemoryStream(b); 
      System.Drawing.Image img = System.Drawing.Image.FromStream(ms); 

      string folderPath = Server.MapPath("~/ImagesFolder/"); //Create a Folder in your Root directory on your solution. 
      string fileName = "IMageName" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second + ".jpg"; 
      string imagePath = folderPath + fileName; 
      img.Save(imagePath, System.Drawing.Imaging.ImageFormat.Jpeg); 

      img.Dispose(); 
      ms.Close(); 
     } 
    } 

versucht, aber dieser Fehler

Die Eingabe ist kein gültiger Base-64-String kommt, wie es enthält ein Nicht-Basiszeichen, mehr als zwei Füllzeichen oder ein ungültiges Zeichen unter den Füllzeichen.

bitte helfen Sie mir.

+0

Sie den HTML-Code einer Webseite nehmen, es ist ein base64 String vorgibt, dass in einem Byte-Array konvertiert wird, und dann so zu tun, dass der Byte-Array von Bilddaten darstellt, die in ein Bild umgewandelt werden können. Das wird wirklich nicht funktionieren. Du brauchst so etwas wie eine der hier erwähnten Lösungen (http://stackoverflow.com/questions/10721884/render-html-to-an-image). – mason

Antwort

0

Sie können in diesem Bereich Leinwand verwenden. Dieses Skript Sie ASPX-Seite

<script type="text/javascript"> 
      function ConvertToImage(btnExport) { 
       html2canvas($("selector")[0]).then(function (canvas) { 
        var base64 = canvas.toDataURL(); 
        $("[id*=hfImageData]").val(base64); 
        __doPostBack(btnExport.name, ""); 
       }); 
       return false; 
      } 
</script> 

Und cahnge Ihre Funktion so etwas wie dieses

  string base64 = Request.Form[hfImageData.UniqueID].Split(',')[1]; 
      byte[] bytes = Convert.FromBase64String(base64); 
      System.IO.MemoryStream ms = new System.IO.MemoryStream(bytes); 
      System.Drawing.Image img = System.Drawing.Image.FromStream(ms); 
      string folderPath = Server.MapPath("~/Images/"); //Create a Folder in your Root directory on your solution. 
      string fileName = "IMageName" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second + ".jpg"; 
      string imagePath = folderPath + fileName; 
      img.Save(imagePath, System.Drawing.Imaging.ImageFormat.Png); 

Fügen Sie eine Schaltfläche, um Ihre Seite zu klicken, von denen Sie diese Funktion verlangen und rufen Sie die Funktion ConvertToImage() bei Client-Klick. Und auch ein verstecktes Feld wie folgt hinzufügen: -

<asp:HiddenField ID="hfImageData" runat="server" /> 
<asp:Button ID="btnExport" Text="Export to Image" runat="server" UseSubmitBehavior="false" 
    OnClick="saveURLToImage" OnClientClick="return ConvertToImage(this)" /> 

Nun, wenn Sie auf die Schaltfläche klicken, wird festgelegt, ein Bild von der Webseite auf dem Server auf dem Pfad speichern. Und Sie können den jQuery-Selektor ändern, von dem Sie ein Bild aufnehmen möchten. Diese Lösung verwendet jQuery und Canvas, um sicherzustellen, dass die Bibliotheken importiert werden.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script type="text/javascript" src="http://cdn.rawgit.com/niklasvh/html2canvas/master/dist/html2canvas.min.js"></script> 
+0

hi, bro es ist nicht funktioniert Ich habe alle Änderungen, bitte hilf mir. – Prathap

+0

Nachdem Sie Änderungen vorgenommen haben, was ist das Problem, vor dem Sie stehen ... wie wirft es einen Fehler? – Manish

+0

es funktioniert wie diese Seite kommt nur diese URL https://postimg.org/image/vgwmzis81/ – Prathap

Verwandte Themen