我在ASP.NET中做某种目录,每个人都有电话号码显示。 我不希望在我的网站上收获,所以不要写123-123-1234,而是希望它从图像中呈现。
另一个限制是我不想保存任何TMP图像文件。我希望服务器将其发送回客户端以进行重绘。那是可行的吗?通过JS?
谢谢!
答案 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") %>" />