2012-11-24 49 views
0

在.aspx頁面上,我使用System.Drawing命名空間創建bmp。當BMP完成後,我用它發送到瀏覽器:如何在瀏覽器中顯示動態生成的bmp

using (MemoryStream ms = new MemoryStream()) 
      { 
       bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); 
       byte[] buffer = ms.GetBuffer(); 
       HttpContext.Current.Response.OutputStream.Write(buffer, 0, buffer.Length); 
       HttpContext.Current.Response.Flush(); 
      } 

這似乎只是BMP發送到這使得它的瀏覽器 - 但不是作爲一個HTML頁面。你不能查看源代碼 - 它似乎只是一個位圖。

我想將bmp發送到瀏覽器,但作爲html頁面body標籤的「內容」。

是唯一的方法來做到這一點,將bmp保存(寫入)到磁盤,然後使用該文件作爲圖像標記的src?或者有沒有辦法將它直接渲染到瀏覽器中,但仍然是html頁面的一部分?

回答

2

的simplist解決方案是使用兩頁是這樣的:

a.aspx:

<img src="b.aspx" /> 

b.aspx:

using (MemoryStream ms = new MemoryStream()) 
{ 
    bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); 
    byte[] buffer = ms.GetBuffer(); 
    HttpContext.Current.Response.OutputStream.Write(buffer, 0, buffer.Length); 
    HttpContext.Current.Response.Flush(); 
} 
+0

但使用更好的格式網絡比BMP例如JPEG或PNG。 – CodeCaster

+0

感謝您的回答。作爲一個感興趣的問題,我嘗試了jpeg和png - 但是,它是一個帶有許多顏色和漸變色調的大圖形(繪圖) - 還有很多非常小的幾何形狀(如多邊形 - 所以很多奇數角度的線條傾向於在屏幕上顯示爲「步驟」) - 並且bmp顯示屏幕上的最佳效果。 –

相關問題