2015-01-13 57 views
0

我想用C#winforms生成並輸出帶有圖像的html文件。資源文件夾中有幾張圖片,但我無法將它們輸出到html。如何訪問和輸出C#中的資源中的圖像到html代碼?

任何人都可以建議如何訪問和輸出資源中的圖像到HTML文件?

我的代碼:

從故事
using System; 
using System.Windows.Forms; 
using System.IO; 
namespace winformToHtml 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void btn_report_Click(object sender, EventArgs e) 
     { 
      StreamWriter sWrite = new StreamWriter("C:\\report.html"); 
      sWrite.WriteLine("<html>"); 
      sWrite.WriteLine("<body>"); 
      sWrite.WriteLine("<p> <img src= 'Resources/image.png' height='10%' width='5%' > </p>");     
      sWrite.WriteLine("<body>"); 
      sWrite.WriteLine("<html>"); 
      sWrite.Close(); 
     } 
    } 
} 

回答

2

您可以使用IMG基地64語法來渲染圖片:

public static String Base64Encoded(Image image) 
    { 
     using (MemoryStream m = new MemoryStream()) 
      { 
       image.Save(m, ImageFormat.Jpeg); 
       byte[] imageBytes = m.ToArray(); 

       // Convert byte[] to Base64 String 
       string base64String = Convert.ToBase64String(imageBytes); 
       return base64String; 
      }  
    } 

然後:

sWrite.WriteLine("<p><img src='data:image/jpeg;base64," + Base64Encoded(Resource.Image) + "' height='10%' width='5%' > </p>");     
+1

我得到一個錯誤在該行image.Save(圖像,ImageFormat.Jpeg) ;我認爲它應該是image.Save(m,ImageFormat.Jpeg);和Base64Encoded(Resource.Image)是Base64Encoded(Resources.Image)? – harishli2020

+0

是的,它應該我米。我做了編輯。 – Ksv3n

+0

當我將圖像導出爲html時,底部圖像的某些部分缺失。你能否建議我如何解決這個問題? – harishli2020

0

你的問題是缺少的部分。我假設你已經在應用程序中嵌入了資源,並且你編寫了一個應用程序之外的HTML文件。該html文件引用嵌入在您的可執行文件中的圖像。

你需要extract those resources到你寫html文件的目錄。

如果它們沒有嵌入,則可以使用File.Copy()

如果你希望HTML文件是獨立的(即沒有外部引用),你也可以使用base64在html中編寫圖像,因爲這可以看到@Haga的答案。

相關問題