绘制并填充一个简单的矩形

时间:2011-12-12 13:41:46

标签: c# asp.net drawing

如何使用System.Drawing执行此操作?

我只是希望能够指定尺寸和背景颜色(十六进制),最终得到Image

我看过类似的问题(比如this一个)但是它们更适合WinForms - 我需要它用于ASP.Net。

3 个答案:

答案 0 :(得分: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 :(得分:1)

您无法在ASP.NET Web表单上直接使用System.Drawing,因为浏览器只显示页面,只能理解HTML和CSS,但您的代码在服务器上执行。为了显示一个简单的矩形,我强烈建议使用CSS。

但是,如果您确实需要服务器生成的图形,则过程如下:

  • 创建新的Bitmap(也是Image
  • 使用Graphics对象绘制您喜欢的任何内容。 (提示:Graphics.FromImage()
  • 将位图保存到服务器上的文件中(选择适当的格式,例如PNG)在可以通过网络访问的路径中
  • 请使用<img>标记参阅您网页中的文件。

答案 2 :(得分:0)

您可以使用这些方法,创建图像并将其保存到硬盘。然后将其提供给用户。因此,ASP.NET的额外步骤是将其保存到硬盘。否则,其他一切都可以按原样运作。

相关问题