Исходники.Ру - Программирование
Исходники
Статьи
Книги и учебники
Скрипты
Новости RSS
Магазин программиста

Главная » Статьи по программированию » .NET - Visual Basic.NET »

Обсудить на форуме Обсудить на форуме

GDI+: Новые возможности
В этой статье речь пойдет о GDI+ и о новых возможностях при работе с графикой. Но сначала немного вернемся назад и вспомним старый добрый Visual Basic 6.
Примеры к статье смотри в файле gdiplus.zip

В этой статье речь пойдет о GDI+ и о новых возможностях при работе с графикой. Но сначала немного вернемся назад и вспомним старый добрый Visual Basic 6.

Мы все любили VB за простоту и удобство. Но работа с графикой была его самым слабым местом. Продвинутые пользователи, неудовлетворенные низкой скоростью обработки графических объектов, бросались в дебри Windows API, выигрывая драгоценные секунды. Но времена меняются. Теперь VB.NET является таким же полноценным языком, как и C# и VC++.NET, а кроме того Майкрософт приготовила разработчикам роскошный подарок - GDI+. Теперь можно легко работать с градиентской закраской, обеспечить поддержку прозрачности, осуществлять операции поворота, масштабирования, отражения, полноценная поддержка популярных графических файлов, вплоть до конвертации в другой формат.

Интерфейс GDI+ является развитием GDI (Graphic User Interace), использованного в ранних версиях Windows. Таким образом, модификация GDI для .NET называется GDI+. Пространство имен System.Drawing открывает досуп к базовым средствам GDI+. Более развитые инструменты предоставляются пространствами имен System.Drawing2D, System.Drawing.Imaging и System.Drawing.Text. Класс Graphics содержит методы для создания графических объектов, структуры Point, Rectangle и Size отвечают за графические примитивы, класс Pen позволяет создавать различные перья для начертания линий, а абстрактный класс Brush различные способы заливки фигур.

GDI+ предоставляет богатые возможности для работы с графикой. Давайте рассмотрим их поближе. Но учтите, что в одной статье невозможно описать все богатство возможностей GDI+. Я покажу наиболее эффектные примеры, реализация которых в старых версиях бейсика требовало очень большого труда, бессоных ночей и сотен строчек кода.

Преобразование растровых форматов

Удивительно легко теперь можно конвертировать один графический формат в другой. Для этого достаточно воспользоваться классом ImageFormat с заданным форматом. Поддерживаются все популярные форматы: BMP, GIF, JPG, TIFF, ICO и еще ряд других.

Dim strFilename As String = "c:/sample.jpg"
Dim bitmap As New Bitmap(strFilename)
strFilename="c:/sample.gif"
bitmap.Save(strFilename, System.Drawing.Imaging.ImageFormat.Gif)

Уже только один этот пример показывает, насколько далеко ушел VB.NET от своего предшественника VB 6.0. Вы все еще программируете на VB 6.0? Тогда мы идем к вам :-)

Деформация картинки

Еще одна популярная тема на VB-форумах - это деформация картинки: сжать, увеличить, перевернуть, искривить. Эти приемы используются очень часто для создания различных эффектов, применяемых в играх, хранителях экранах, в окне О программе.

Теперь существует такой мощный метод как DrawImage. Данный метод имеет более 30 перегрузок! Я вам продемонстрирую один вариант - вывод изображения в виде параллелограмма.

Overloads Public Sub DrawImage( _
   ByVal image As Image, _
   ByVal destPoints() As Point _
)

В данном методе выводится изображение в виде параллелограмма, вершины которых задаются массивом из координах из трех точек

Градиенты

Теперь плавно перейдем к градиентам (извините за каламбур). Градиент - это плавный переход одного цвета в другой. Весьма популярная тема среди программистов. Существует вагон и маленькая тележка реализаций градиента. Помню, были даже коммерческие варианты ActiveX-элементов. Но теперь для создания этого эффекта достаточновоспользоваться к примеру классом LinearGradientBrush.

...

Dim lbr As New LinearGradientBrush(rect, Color.Red, Color.Yellow, angle)
...

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

Заключение

В статье я затронул самую малую часть возможностей GDI+. А ведь еще сплайны, кривые Безье, работа с метафайлами, траектории и регионы. Надеюсь, у вас пробудился интерес к данной технологии. Множество примеров на эту тему представлено на MSDN, а также в различных книгах, посвященных VB.NET.

Счастливого Вам программирования!


Может пригодится:


Автор: Александр Климов
Прочитано: 6423
Рейтинг:
Оценить: 1 2 3 4 5

Комментарии: (0)

Добавить комментарий
Ваше имя*:
Ваш email:
URL Вашего сайта:
Ваш комментарий*:
Код безопастности*:

Рассылка новостей
Рейтинги
© 2007, Программирование Исходники.Ру