Нарисуйте и заполните простой прямоугольник - PullRequest
1 голос
/ 12 декабря 2011

Как я могу использовать System.Drawing для этого?

Я просто хочу иметь возможность указать размеры и цвет фона (в шестнадцатеричном формате) и в итоге получить Image.

Я смотрел на похожие вопросы (например, этот один), но они больше для WinForms - он мне нужен для ASP.Net.

Ответы [ 3 ]

6 голосов
/ 12 декабря 2011

Вы можете сделать что-то вроде этого:

<%@ 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 голос
/ 12 декабря 2011

Вы не можете напрямую использовать System.Drawing в веб-форме ASP.NET, потому что страница отображается браузером, который понимает только HTML и CSS, но ваш код выполняется на сервере. Для отображения простого прямоугольника я настоятельно рекомендую использовать CSS.

Однако, если вам действительно нужна генерируемая сервером графика, процедура выглядит следующим образом:

  • Создайте новый Bitmap (который также Image)
  • Нарисуйте все что угодно, используя объект Graphics. (Подсказка: Graphics.FromImage())
  • Сохраните растровое изображение в файл на вашем сервере (выберите подходящий формат, например, PNG) по пути, по которому к нему можно получить доступ через Интернет
  • Обратитесь к файлу на своей странице, используя тег <img>.
0 голосов
/ 12 декабря 2011

Вы можете использовать эти подходы, создать образ и сохранить его на жестком диске. Тогда подайте это до пользователя. Поэтому дополнительным шагом для ASP.NET является сохранение его на жесткий диск. В противном случае все остальное может работать как есть.

...