c# - 将位图添加到 HTML

标签 c# asp.net html

我有一个 ASP.NET 网络表单。这个网络表单有一个生成一些 HTML 的事件处理程序。此 HTML 基于一天中的时间,这就是它在事件处理程序中创建的原因。根据一天中的时间,通过以下方法以编程方式创建图像:

private Bitmap GetImageForTime(DateTime time)
{
  Bitmap bitmap = new Bitmap();

  // Dynamically build the bitmap...

  return bitmap;
}

我想在生成 HTML 时调用此方法。但是,我不想在服务器上写入图像。相反,我想找出一种方法将它与 HTML 一起写出来。从某种意义上说,我正在努力实现以下目标:

protected void myLiteral_Load(object sender, EventArgs e)
{
  string html = "<table><tr><td>";
  html += GetImageForTime(DateTime.Now);  // This is the problem because it's binary.
  html += "</td><td>";
  html += GetWeatherHtmlText();
  html += "</td></tr></table>";
  myLiteral.Text = html;
}

这可能吗?如果是,怎么办?

最佳答案

我建议实现 IHttpHandler生成您的图像并将其作为字节流返回。然后在页面的标记中,将 src 属性设置为 HTTP 处理程序的地址。

<html><body><img src="TimeImageHandler.ashx"/></body></html>

示例:http://www.c-sharpcorner.com/uploadfile/desaijm/httphandlersforimages11152005062705am/httphandlersforimages.aspx

一旦了解了通用 HTTP 处理程序,创建它们就非常简单:

public class TimeImageHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        Bitmap bitmap = GetImageForTime(DateTime.Now);
        context.Response.ContentType = "image/jpeg";
        bitmap.Save(context.Response.OutputStream, ImageFormat.Jpeg);
    }

    public bool IsReusable { get { return false; } }
}

关于c# - 将位图添加到 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3104648/

相关文章:

C# HttpClient POST'ing 异步

C# - 使用 lambda 指定非默认参数

c# - 尝试通过 WCF 传递位图时出现 "System.ServiceModel.CommunicationException"

javascript - 当页面包含 asp.net ajax updatepanel 时,css 链接悬停和 javascript 不工作

c# - 使用 MySql MySQLMembershipProvider - autogenerateschema ="true"不工作?

java - 如何使用 Java HTMLParser (org.htmlparser) 替换链接的 URL

c# - 用图像替换光标指针后,如何将图像置于鼠标指针位置而不是图像左上角的中心?

c# - 参数不正确。服务器或代码问题?

javascript - 为什么我的 Suckerfish-as-tooltip 解决方案会逐渐缩进元素?

javascript - 使用坐标裁剪图像