现在我有以下代码,它可以很好地在网页中显示我动态创建的图像,但它覆盖了那里的任何控件。如何在特定控件中显示图像?
理想情况下,我希望它显示在我在页面上定义的面板 (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();
正如我所说,这工作得很好,除了它用图像覆盖了我在页面上的任何控件,而我想限制它保留在面板中。
有没有办法做到这一点?
面板内image
控件,并且该控件的ImageUrl
属性必须设置为将其请求发送到新的page
或handler
,在该页面上,您需要写下您的bitmap
,我已经为此发布了解决方案...这里。。。
检查是否
假设你有一个名为PageA.aspx
的页面,其中包含一个panel
,你需要一个image
元素,在面板内,如下所示:
<asp:Image ID="Image1"
runat="server"
CssClass="w120px h120px"
ImageUrl='newpage.aspx' />
关于ImageUrl
属性的通知...
此图像向newpage.aspx
发送请求以获取图片...在newpage.aspx
page_load
中,您需要将包含图片的MemoryStream
写到Response
中,如下所示:
protected void Page_Load(object sender, EventArgs e)
{
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);
Response.BinaryWrite(ms.ToArray());
}
bmp.Dispose();
Response.End();
}