将动态创建的位图写入面板(或任何其他控件)

时间:2014-02-23 09:26:38

标签: c# asp.net graphics

现在我有以下代码,可以在网页中显示我动态创建的图像,但它会覆盖任何控件。如何在特定控件内显示图像?

理想情况下,我希望它显示在我在页面上定义的面板(Panel1)中。

        Response.Clear();
        Response.ContentType = "image/png";
        Bitmap bmp = new Bitmap(W, H,  PixelFormat.Format24bppRgb);
        Graphics g = Graphics.FromImage(bmp);

        //lots of drawing code

        using (MemoryStream ms = new MemoryStream())
        {
            bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
            ms.WriteTo(Response.OutputStream);
        }

        bmp.Dispose();
        Response.End();

正如我所说的,这样做很漂亮,除了它覆盖了我在页面上的任何控件与图像,而我想限制它保留在面板内。

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:2)

您需要在面板中设置image控件,并且必须将其ImageUrl属性设置为将其请求发送到新的pagehandler,在该页面上,您需要撰写bitmap,我已为此...Here...

发布了解决方案

检查

答案 1 :(得分:0)

假设您有一个名为PageA.aspx的页面包含panel,您需要一个image元素,在面板中,如下所示:

<asp:Image ID="Image1" 
    runat="server" 
    CssClass="w120px h120px" 
    ImageUrl='newpage.aspx' />

通知ImageUrl属性......

此图片向newpage.aspx发送请求以获取图片... 在page_load的{​​{1}}中,您需要将包含图片的newpage.aspx写入MemoryStream,如下所示:

Response