объект graphics можно создать способами

Практическое руководство. Создание графических объектов для рисования

прежде чем рисовать линии и фигуры, отображать текст или отображать изображения с помощью GDI+, необходимо создать Graphics объект. Graphicsобъект представляет GDI+ поверхность рисования, а — объект, используемый для создания графических изображений.

Работа с графикой состоит из двух этапов.

Использование Graphics объекта для рисования линий и фигур, отображения текста или отображения изображений и управления ими.

Создание графического объекта

Графический объект может быть создан различными способами.

Создание графического объекта

Вызовите CreateGraphics метод элемента управления или формы, чтобы получить ссылку на Graphics объект, представляющий поверхность рисования этого элемента управления или формы. Используйте этот метод, если требуется рисовать на форме или элементе управления, который уже существует.

Следующие разделы содержат сведения о каждом из этих процессов.

PaintEventArgs в обработчике событий Paint

получение ссылки на объект Graphics из PaintEventArgs в событии Paint

Вставка кода для заполнения формы или элемента управления.

В следующем примере показано, как ссылаться на Graphics объект из PaintEventArgs в Paint событии.

Метод CreateGraphics

Можно также использовать CreateGraphics метод элемента управления или формы для получения ссылки на Graphics объект, представляющий поверхность рисования этого элемента управления или формы.

Создание графического объекта с помощью метода CreateGraphics

Вызовите CreateGraphics метод формы или элемента управления, для которого требуется отобразить графические объекты.

Создание из объекта Image

Кроме того, можно создать графический объект из любого объекта, производного от Image класса.

Создание графического объекта из изображения

Вызовите Graphics.FromImage метод, указав имя переменной изображения, из которой нужно создать Graphics объект.

В следующем примере показано, как использовать Bitmap объект:

Рисование фигур и изображений и управление ими

После создания Graphics объект может использоваться для рисования линий и фигур, отображения текста или отображения изображений и управления ими. Объекты Principal, используемые с Graphics объектом:

PenКласс, используемый для рисования линий, структурирования фигур или визуализации других геометрических представлений.

BrushКласс, используемый для заливки областей графических объектов, таких как заполненные фигуры, изображения или текст.

FontКласс — содержит описание фигур, используемых при отрисовке текста.

ColorСтруктура — представляет различные отображаемые цвета.

Использование созданного объекта Graphics

Для рисования нужного объекта выполните действия с соответствующим объектом, приведенным выше.

Дополнительные сведения см. в следующих разделах:

Источник

Урок из серии «Программирование на Visual Basic.NET для школьников»

Здравствуйте, дорогой читатель. В этом уроке мы начнем изучать графические методы языка программирования Visual Basic.Net, которые позволяют создавать рисунки на форме или элементах управления.

Графические методы языка программирования Visual Basic.Net существенно отличаются от графических операторов предшествующей версии Visual Basic 6. Теперь для создания рисунка вы должны непосредственно использовать графические службы GDI+, доступные через пространство имен System.Drawing.

На этом уроке вы узнаете, как создать объекты Graphics (Область рисования), Реn (Перо) и Brush (Кисть), необходимые для рисования.

Прежде чем использовать графические методы класса System.Drawing.Graphics для рисования примитивных фигур, вы должны в вашем коде создать объекты Graphics (Область рисования), Реn (Перо) и Brush (Кисть).

Первый способ состоит в использовании метода CreateGraphics() формы или элемента управления, на котором надо отобразить графику. Например, создадим объект Graph1 типа Graphics, а затем укажем определенный элемент управления в качестве области рисования. Обычно в качестве области рисования выбирается размещенное на форме графическое поле (например, PictureBox1):

Второй способ используется для создания растрового изображения, которое можно сохранить как графический файл. Сначала необходимо объявить создание растрового изображения Image1 определенного размера, затем объявить создание объекта Graph1 типа Graphics из растрового изображения Image1 и, наконец, присвоить свойству Image формы или элемента управления (например, PictureBox1.Image)значение Image1.

Третий способ использует событие Paint формы или элемента управления, которое происходит при их создании или обновлении. В обработчике этого события одним из аргументов является e типа System.Windows.Forms.PaintEventArgs. В программном коде обработчика события можно объявить создание объекта Graph1 типа Graphics как свойства аргумента e.

Затем, если необходимо, можно установить новые значения цвета и ширины линии, например:

Если необходимо, можно будет поменять цвет закраски (например, на пурпурный):

Объект Brush передается как аргумент в методы, которые выполняют цветную заливку.

Объекты Pen, Brush и Graphics потребляют системные ресурсы. Поэтому, после окончания их использования, необходимо всегда вызывать Dispose()

Выбор цвета

Цвет устанавливается как значение свойства Color. Можно установить цвет с использованием нескольких десятков цветовых констант. Ниже приведены примеры установки зеленого цвета для объекта Pen1 (перо) и желтого цвета для объекта Brush1 (кисть).

Для установки цвета в 24-битовой палитре цветов RGB используется метод Color.FromArgb(Red, Green, Blue), аргументами которого являются три числа в диапазонах от 0 до 255 (интенсивность красного, зеленого и синего цветов). Например, так можно установить пурпурный цвет для кисти Brush1.

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

После заполнения первой строки программного кода появится диалоговое окно Цвет. Вторая строка программного кода присваивает перу цвет, который можно выбрать в диалоговом окне Цвет с помощью мыши из палитры 48 основных цветов.

В этом уроке вы узнали, как создать объекты Graphics (Область рисования), Реn (Перо) и Brush (Кисть), необходимые для рисования, как выбрать цвет.

На следующем уроке мы познакомимся с графическими методами для рисования геометрических фигур.

Источник

Графика GDI+

Ядром программирования GDI+ является класс System.Drawing.Graphics. Класс Graphics инкапсулирует поверхность рисования GDI+, будь то окно, печатный документ или хранящееся в памяти растровое изображение. Разработчикам ASP.NET редко приходится рисовать окна или печатные документы, поэтому в веб-приложениях наибольшее применение находит последняя из названных возможностей.

Чтобы использовать GDI+ в среде ASP.NET, необходимо выполнить следующие четыре действия:

Создать хранящееся в памяти растровое изображение, в котором будет выполняться все рисование.

Создать графический контекст GDI+ для изображения. Выполнение этого действия предоставит экземпляр объекта System.Drawing.Graphics.

Выполнить рисование с помощью методов экземпляра объекта Graphics. Эти методы позволяют рисовать и закрашивать линии и формы, а также копировать содержимое растрового изображения из существующих файлов.

Читайте также:  какое животное призывает боруто

Записать изображение в браузер с помощью свойства Response.OutputStream.

В последующих разделах приводится несколько примеров веб-страниц, в которых используется GDI+. Прежде чем продолжить, удостоверьтесь в том, что импортированы следующие пространства имен:

В пространстве имен System.Drawing определены многие из основополагающих ингредиентов рисования, в том числе перья, кисти и растровые изображения. Пространство имен System.Drawing.Drawing2D добавляет другие полезные нюансы, такие как весьма гибкий класс GraphicsPath, а пространство имен System.Drawing.Imaging включает в себя пространство имен ImageFormat, позволяющее выбирать формат графики, в котором растровое изображение будет визуализировано при отправке клиенту.

Простое рисование

В следующем примере демонстрируется простейшая страница GDI+. Вся необходимая работа выполняется в обработчике события Page.Load.

Прежде всего, нужно построить хранящееся в памяти растровое изображение, создав экземпляр класса System.Drawing. Bitmap. При создании этого объекта в аргументах конструктора потребуется указать высоту и ширину изображения в пикселях. Размер изображения должен быть как можно меньшим. Крупные растровые изображения будут не только потреблять больше дополнительной памяти впс» target=»_blank»>сервера во время выполнения, но возрастет также и размер визуализированного содержимого, отправляемого клиенту, что замедлит передачу данных.

Затем нужно создать графический контекст GDI+ изображения, представленный объектом System.Drawing.Graphics. Методы этого объекта позволяют выполнять рисование в хранящемся в памяти растровом изображении. Чтобы создать объект Graphics из объекта Bitmap, используйте статический метод Graphics. FromImage().

Теперь начинается самое интересное. С помощью методов класса Graphics в растровом изображении можно нарисовать текст, формы и изображения. В этом примере код рисования чрезвычайно прост. Он заполняет графический элемент сплошным белым фоном, используя метод FillRectangle() объекта Graphics. (Первоначально в новом растровом изображении каждый пиксель устанавливается в черный цвет.)

Рамка толщиной в 1 пиксель оставлена незаполненной. В результате отображается тонкая рамка исходного черного цвета. Следующий фрагмент кода рисования визуализирует сообщение статической метки. Для этого создается объект System.Drawing. Font, представляющий используемый шрифт. Этот объект не следует путать с объектом FontInfo, который применяется с элементами управления ASP.NET для указания запрошенного кода веб-страницы. В отличие от FontInfo, объект Font представляет один конкретный шрифт (включая его гарнитуру, размер и стиль), установленный на текущем компьютере. При создании объекта Font нужно указать имя шрифта, его размер в пунктах и стиль, например:

Поскольку это изображение генерируется на впс» target=»_blank»>сервере, при его создании можно использовать любой шрифт, установленный на впс» target=»_blank»>сервере. Клиенту не обязательно иметь этот же шрифт, поскольку он получает текст в виде визуализированного изображения.

Для визуализации текста служит метод DrawString() объекта Graphics. Как и в случае объекта FillRectangle, понадобится указать координаты точки, с которой должно начинаться рисование. Эта точка представляет верхний левый угол текстового блока. В данном случае используется точка (10, 5), что ведет к смещению текста на 10 пикселей от левого края и на 5 пикселей от верхнего края экрана:

Как только изображение готово, его можно оправить браузеру методом Bitmap. Save(). Изображение сохраняется в потоке ответа браузера. Оно отправляется клиенту и отображается в браузере. При записи непосредственно в поток ответа, как в данном примере, изображение заменяет любые другие данные веб-страниц и обходит модель веб-элемента управления:

Изображение можно сохранить в любой допустимый поток, включая FileStream. Эта технология позволяет сохранять динамически генерируемые изображения на диске, чтобы впоследствии их можно было использовать в других веб-страницах.

И, наконец, необходимо вызвать метод Dispose() для изображения и контекста графики, как показано ниже. И изображение, и контекст графики опираются на неуправляемые ресурсы, которые не могут быть освобождены немедленно, и при генерации большого объема изображений загруженность ресурсов может влиять на производительность впс» target=»_blank»>сервера:

Чтобы сэкономить время можно использовать операторы using для классов реализующих IDisposable. Ниже показано сохранение графики в файл и отображение ее в элементе Image:

Формат и качество изображения

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

Наиболее наглядно сглаживание проявляется при отображении кривых. Это означает, что оно существенно улучшает внешний вид эллипсов, окружностей и дуг, но никак не сказывается на прямых линиях, квадратах и прямоугольниках:

Сглаживание можно применять также к шрифтам, чтобы сгладить ступенчатость краев текстовых элементов. Чтобы гарантированно получить оптимизированный текст, можно установить свойство Graphics. TextRenderingHint. Для выбора доступны значения SingleBitPerPixelGridFit (наивысшая производительность и самое низкое качество), AntiAlias (хорошее качество благодаря сглаживанию), AntiAliasGridFit (более высокое качество благодаря сглаживанию и выводу подсказок, но более низкая производительность) и ClearTypeGridFit (наивысшее качество на жидкокристаллическом дисплее).

Или же можно использовать значение SystemDefault, чтобы применять любые настройки сглаживания шрифта, сконфигурированные пользователем. Настройка SystemDefault является настройкой по умолчанию, а системные настройки по умолчанию большинства компьютеров включают функцию сглаживания текста. Даже если эта настройка не установлена, как правило, динамически визуализированный текст будет рисоваться в высоком качестве. Однако, поскольку управление системными настройками веб-