2011-12-12 62 views
1

如何使用System.Drawing來執行此操作?繪製並填充一個簡單的矩形

我只是想能夠指定尺寸和背景顏色(十六進制),並最終以Image結束。

我已經看過類似的問題(如this之一),但他們更多的是WinForms - 我需要ASP.Net。

回答

6

你可以做這樣的事情:

<%@ Page Language="C#" ContentType="image/jpeg" %> 
<%@ Import Namespace="System.Drawing" %> 
<%@ Import Namespace="System.Drawing.Text" %> 
<%@ Import Namespace="System.Drawing.Imaging" %> 
<%@ Import Namespace="System.Drawing.Drawing2D" %> 

<% 

Response.Clear(); 
int height = 100; 
int width = 200; 
Random r = new Random(); 
int x = r.Next(75); 

Bitmap bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb); 
Graphics g = Graphics.FromImage(bmp); 

g.TextRenderingHint = TextRenderingHint.AntiAlias; 
g.Clear(Color.Orange); 
g.DrawRectangle(Pens.White, 1, 1, width-3, height-3); 
g.DrawRectangle(Pens.Gray, 2, 2, width-3, height-3); 
g.DrawRectangle(Pens.Black, 0, 0, width, height); 
g.DrawString("The Code Project", new Font("Arial", 12, FontStyle.Italic), 
SystemBrushes.WindowText, new PointF(x,50)); 

bmp.Save(Response.OutputStream, ImageFormat.Jpeg); 
g.Dispose(); 
bmp.Dispose(); 
Response.End(); 

%> 

下面是完整的文章的鏈接:http://www.codeproject.com/KB/aspnet/aspnet_web_graphics.aspx

1

不能直接使用System.Drawing中一個ASP.NET Web表單上,因爲頁面由瀏覽器顯示,但只能理解HTML和CSS,但您的代碼在服務器上執行。爲了顯示一個簡單的矩形,我強烈推薦使用CSS。

但是,如果你真的需要服務器生成的圖形,程序如下:

  • 創建一個新的Bitmap(這也是一個Image
  • 繪製任何你喜歡用Graphics對象。 (提示:Graphics.FromImage()
  • 保存位圖到你的服務器上的文件(選擇合適的格式,例如PNG)的路徑它可以通過網絡
  • 使用<img>標籤參考文件在你的頁面中acessed。
0

您可以使用這些方法創建映像並將其保存到硬盤。然後將其提供給用戶。所以ASP.NET的額外步驟是將其保存到硬盤。否則,其他一切都可以按原樣工作。