2012-06-19 183 views
0

我有一個頁面http://www.mysite.com/image.aspx,我想加載和顯示圖像,而不是渲染HTML。渲染圖像的網頁

我必須設置爲image/png頁面的contentType中,這裏是我的代碼:

using (Bitmap image = new Bitmap("http://www.google.com/images/img.png")) 
{ 
    using (MemoryStream ms = new MemoryStream()) 
    { 
     image.Save(ms, System.Drawing.Imaging.ImageFormat.Png); 
     ms.WriteTo(Response.OutputStream); 
    } 
} 

,但我得到一個錯誤說:

URI格式不被支持。

我如何加載外部圖像,並將其渲染網頁?

回答

4

使用URI不能加載位圖 - 它必須是一個本地文件到您的計算機。

如果你想從從網上加載圖像,然後渲染它,你需要做一個Web請求關閉該特定資源,然後呈現字節流,你在做什麼。

AKA

WebRequest webRequest = WebRequest.Create("http://www.google.com/images/img.png"); 
using(WebResponse response = webRequest.GetResponse()) 
{ 
    using(MemoryStream stream = new MemoryStream(response.GetResponseStream()) 
    { 
     stream.WriteTo(Response.OutputStream); 
    } 
} 
+0

我得到一個編譯錯誤說'對System.IO.MemoryStream.MemoryStream的最佳重載的方法匹配(字節[])有一些無效arguments' - 有另一種方式來創建一個MemoryStream從WebResponse? – Steven

+0

以上引用的代碼示例可能不完全正確的,因爲我剛纔輸入它從記憶。然而,在最壞的情況下,你從後面流'GetResponseStream'可以直接通過做'Read'電話寫在MemoryStream的緩衝區。 – Tejs