我希望能夠創建一個簡單的PNG圖像,例如使用基於c#的基於Web的服務來生成圖像的紅色正方形,從<img src="myws.ashx?x=100>
HTML元素調用。用C#創建PNG圖像HttpHandler webservice
一些示例HTML:
<hmtl><body>
<img src="http://mysite.com/webservice/rectangle.ashx?size=100">
</body></html>
是否有任何人誰可以湊齊一個簡單的(工作)C#類只是爲了讓我開始?一旦離開,我確信我可以完成這一切,實際上做我想做的事情。
- 最後一步就是創建簡單的紅色/黃色/綠色(RAG)的嵌入式狀態的數據驅動的Web頁面,顯示性能指標等*標記
- 我想它,因爲我預計使用使用PNG的透明度在未來*
- ASP.NET 2.0 C#的解決方案,請...(我沒有生產3.5框還)
TIA
SOLUTION個
rectangle.html
<html>
<head></head>
<body>
<img src="rectangle.ashx" height="100" width="200">
</body>
</html>
rectangle.ashx
<%@ WebHandler Language="C#" Class="ImageHandler" %>
rectangle.cs
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Web;
public class ImageHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
int width = 600; //int.Parse(context.Request.QueryString["width"]);
int height = 400; //int.Parse(context.Request.QueryString["height"]);
Bitmap bitmap = new Bitmap(width,height);
Graphics g = Graphics.FromImage((Image) bitmap);
g.FillRectangle(Brushes.Red, 0f, 0f, bitmap.Width, bitmap.Height); // fill the entire bitmap with a red rectangle
MemoryStream mem = new MemoryStream();
bitmap.Save(mem,ImageFormat.Png);
byte[] buffer = mem.ToArray();
context.Response.ContentType = "image/png";
context.Response.BinaryWrite(buffer);
context.Response.Flush();
}
public bool IsReusable {
get {return false;}
}
}
你可以讓一個http處理程序返回一個圖像嗎?可以說一個位圖圖像或一個字節[]緩衝區到一個c#方法(代碼在文件後面)從它被稱爲?我很抱歉,如果我聽起來很蠢,但我是新來的HTTP處理程序 – zack 2010-10-27 15:00:21
@YP,看到接受的答案?否則我不明白你的意思,坦率地說,我不知道怎麼做。我的c#是bleh! – Guy 2010-11-01 11:26:01
@guy感謝您發佈解決方案 - 幫了我很多! – 2012-06-13 09:31:11