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

时间:2011-11-23 20:47:18

标签: javascript asp.net

我在ASP.NET中做某种目录,每个人都有电话号码显示。 我不希望在我的网站上收获,所以不要写123-123-1234,而是希望它从图像中呈现。

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

谢谢!

2 个答案:

答案 0 :(得分:1)

我不会用JavaScript做到这一点。如果他们可以抓取您的网页,他们可以抓取您的var phone = '123-123-1234'; JavaScript代码。但是没有关于如何做到这一点的例子的短缺on the web。大多数示例将图像直接写入客户端而不创建中间文件。

答案 1 :(得分:1)

创建一个流回图像的通用处理程序。传递一个标识符,允许您从数据库中查找电话号码。您可以在新Graphics.DrawString(phoneNumber, ...)的图形上调用Bitmap并将其保存到Response.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") %>" />