C# 如何在ASP.NET中将文本和图像写入Response.OutputStream

C# 如何在ASP.NET中将文本和图像写入Response.OutputStream,c#,.net,asp.net,webforms,C#,.net,Asp.net,Webforms,我正在绘制一幅图像,并使用以下代码将其输出到网页: Bitmap image = new Bitmap(350, 350); Graphics g = Graphics.FromImage(image); // code using g to draw image here image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif); 这个很好用。现在我想向输出javascript添加一些文本。然而,当我这

我正在绘制一幅图像,并使用以下代码将其输出到网页:

Bitmap image = new Bitmap(350, 350);
Graphics g = Graphics.FromImage(image);
// code using g to draw image here
image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
这个很好用。现在我想向输出javascript添加一些文本。然而,当我这样做时,要么文本不显示,要么图像变成垃圾

正确的方法是什么


*-我更改了contenttype并使用了reponse.write。还尝试将文本的字节数组写入输出流。

您需要使用包含Javascript和
或者,它可以是一个标记,您可以返回JavaScript并让它向DOM添加一个img。

如果您仍然希望在一个请求中执行此操作,那么这可能是最好的方法。它将base64编码的数据直接放入img标记的src属性中。i、 e

<img src="data:image/png;base64,iVBORw0KGgoAAAANS..." />

您可以为图像代码编写一个名为imageGrab.aspx的单独文件,并使用javascript在另一个文件中调用该文件。它应该很好用。比如说

<img border=0 height=150 src='ImageGrab.aspx?seqid=3'>

不能在对HTTP请求的相同响应中混合使用GIF和JavaScript代码。我也这么认为。我希望避免将图像写入磁盘并使用img标记。你不必这样做。正如@Lou Franco所指出的,你只需要将它分为两个请求。我可以在另一个页面中像这样引用img标签中的图像?当然你可以这样做。请看我的答案。这很好,但并非所有浏览器都支持,因此请确保事先进行测试。我曾想过这样做,但我找不到有关如何这样做的资源。谢谢
public partial class ImageGrab : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            byte[] byteData = new byte[0];

            // fetch the value of parameter into the byte array

            string seq_id = Request.QueryString["seqid"];

            if (string.IsNullOrEmpty(seq_id))
            {
                seq_id = "214";
            }


            byteData = DBManager.GetBinaryData(seq_id);

            Response.Clear();

            Response.ContentType = "image/jpeg";
            Response.BinaryWrite(byteData);
            Response.End();
        }
        catch (Exception exc)
        {
            Response.Write(exc.Message);
        }
    }

}