将图像渲染到页面

时间:2012-06-19 21:23:30

标签: c# asp.net

我有一个页面http://www.mysite.com/image.aspx,我想加载并显示图片而不是呈现HTML。

我将页面的ContentType设置为image/png,这是我的代码:

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格式。

如何加载外部图像并将其渲染到页面?

1 个答案:

答案 0 :(得分:4)

您无法使用URI加载位图 - 它必须是您计算机的本地文件。

如果要从Web上加载图像然后再渲染它,则需要向该特定资源发出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);
    }
}