我正在ASP.NET中執行某種目錄,其中每個人都顯示電話號碼。 我不想在我的網站上收穫,所以而不是寫123-123-1234我希望它從圖像呈現。如何在沒有圖像文件的情況下將文本轉換爲圖像
另一個限制是我不想保存任何TMP圖像文件。我希望服務器將其發送回客戶端進行重新繪製。那是可行的嗎?通過JS?
謝謝!
我正在ASP.NET中執行某種目錄,其中每個人都顯示電話號碼。 我不想在我的網站上收穫,所以而不是寫123-123-1234我希望它從圖像呈現。如何在沒有圖像文件的情況下將文本轉換爲圖像
另一個限制是我不想保存任何TMP圖像文件。我希望服務器將其發送回客戶端進行重新繪製。那是可行的嗎?通過JS?
謝謝!
我不會用JavaScript來做到這一點。如果他們可以刮你的頁面,他們可以刮你的代碼var phone = '123-123-1234';
。但是,如何做到這一點on the web並沒有例子。大多數示例將圖像直接寫入客戶端而不創建中間文件。
創建一個傳回圖像的通用處理程序。傳遞一個標識符,允許您從數據庫中查找電話號碼。您可以從新的Bitmap
的圖形上調用Graphics.DrawString(phoneNumber, ...)
,並將其保存到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") %>" />
我只是寫了同樣的答案,但你吞噬它真的很好:) – Goran
你看着畫布HTML 5? –
請參閱(例如):http://stackoverflow.com/questions/887985/create-png-image-with-c-sharp-httphandler-webservice –
您希望服務器發送客戶端變成圖像的文本? – Paul