Javascript 如何在没有图像文件的情况下动态地将文本转换为图像

Javascript 如何在没有图像文件的情况下动态地将文本转换为图像,javascript,asp.net,Javascript,Asp.net,我正在ASP.NET中做某种目录,其中每个人都显示电话号码。 我不想在我的网站上采集,所以我不想写123-123-1234,而是希望它是从图像中渲染出来的 另一个限制是我不想保存任何TMP图像文件。我希望服务器将其直接发送回客户端进行重新绘制。这是可行的吗?通过JS 谢谢 我不会用JavaScript做这件事。如果他们可以刮取你的页面,他们可以刮取你的JavaScript代码,上面写着var phone='123-123-1234'。但关于如何做到这一点的例子并不缺乏。大多数示例直接将映像写入客

我正在ASP.NET中做某种目录,其中每个人都显示电话号码。 我不想在我的网站上采集,所以我不想写123-123-1234,而是希望它是从图像中渲染出来的

另一个限制是我不想保存任何TMP图像文件。我希望服务器将其直接发送回客户端进行重新绘制。这是可行的吗?通过JS


谢谢

我不会用JavaScript做这件事。如果他们可以刮取你的页面,他们可以刮取你的JavaScript代码,上面写着
var phone='123-123-1234'。但关于如何做到这一点的例子并不缺乏。大多数示例直接将映像写入客户端,而不创建中间文件。

创建一个通用处理程序,将映像流回。向其传递一个标识符,该标识符允许您从数据库中查找电话号码。您可以从一个新的
位图
在图形上调用
Graphics.DrawString(phoneNumber,…)
,并将其保存到
响应.OutputStream

大概是这样的:

public class PhoneNumber : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        var id = context.Request["id"];
        var phoneNumber = "";
        if (!string.IsNullOrEmpty(id))
        {
            phoneNumber = DataAccessor.GetPhoneNumber(id);
        }
        context.Response.ContentType = "image/png";
        var bmp = new Bitmap(100, 20);
        var gfx = Graphics.FromImage(bmp);
        gfx.FillRectangle(Brushes.White, 0, 0, 100, 20);
        gfx.DrawString(phoneNumber, new Font("Arial", 10), Brushes.Black, 0, 0);
        bmp.Save(context.Response.OutputStream, ImageFormat.Png);
    }
    public bool IsReusable { get { return false; } }
}
可以这样说:

<img src="PhoneNumber.ashx?id=<%# Eval("PhoneNumberId") %>" />
“/>

您是否使用HTML 5查看过画布?请参阅(例如):您希望服务器发送文本,客户端将其转换为图像?否。我希望它们之间的通信仅通过图像进行。但我不希望服务器创建图像我只是在写同一个答案,但您说得很好:)