Новые возможности
В следующих разделах описаны некоторые новые возможности Windows GDI+.
- Градиентные кисти
- Кардинальные сплайны
- Независимые объекты пути
- Преобразования и объект матрицы
- Масштабируемые регионы
- Альфа-смешивание
- Поддержка нескольких форматов изображений
Градиентные кисти
GDI+ расширяет интерфейс графических устройств Windows (GDI), предоставляя кисти линейного градиента и градиента пути для заполнения фигур, путей и областей. Градиентные кисти также можно использовать для рисования линий, кривых и контуров. При заполнении фигуры линейной кистью градиента цвет постепенно меняется при перемещении по фигуре. Например, предположим, что вы создаете горизонтальную градиентную кисть, указав синий на левом краю фигуры и зеленый на правом крае. При заполнении этой фигуры горизонтальной градиентной кистью она постепенно меняется с синего на зеленый по мере перехода от левого края к правому краю. Аналогичным образом, фигура, заполненная вертикальной градиентной кистью, будет изменять цвет при переходе сверху вниз. На следующем рисунке показан эллипс, заполненный горизонтальной градиентной кистью, и область, заполненная диагональной кистью градиента.
При заполнении фигуры кистью градиента пути можно указать, как изменяются цвета при переходе от одной части фигуры к другой. Один из вариантов — иметь центральный цвет и цвет границы, чтобы пиксели постепенно изменялись от одного цвета к другому по мере перемещения от середины фигуры к внешним краям. На следующем рисунке показан путь (созданный из пары сплайнов Безье), заполненный кистью градиента пути.
Фундаментальные сплайны
GDI+ поддерживает основные сплайны, которые не поддерживаются в GDI. Фундаментальный сплайн — это последовательность отдельных кривых, образующих при объединении более крупную кривую. Сплайн задается массивом точек и проходит через каждую точку в этом массиве. Кардинальный сплайн проходит плавно (без острых углов) через каждую точку массива и, таким образом, является более уточненным, чем путь, созданный путем соединения прямых линий. На следующем рисунке показаны два пути: один из них создается путем соединения прямых линий, а второй — в виде кратного сплайна.
Независимые объекты пути
В GDI путь принадлежит контексту устройства, и путь уничтожается при рисовании. При использовании GDI+ рисование выполняется объектом Graphics , и вы можете создавать и обслуживать несколько объектов GraphicsPath , которые отделены от объекта Graphics . Объект GraphicsPath не уничтожается действием рисования, поэтому вы можете использовать один и тот же объект GraphicsPath для рисования пути несколько раз.
Преобразования и объект матрицы
GDI+ предоставляет объект Matrix , мощный инструмент, который делает преобразования (повороты, переводы и т. д.) простыми и гибкими. Матричный объект работает в сочетании с преобразованными объектами. Например, объект GraphicsPath имеет метод GraphicsPath::Transform , который получает адрес объекта Matrix в качестве аргумента. В одной матрице из 3×3 может храниться одно преобразование или последовательность преобразований. На следующем рисунке показан путь до и после последовательности двух преобразований (сначала масштаб, а затем поворот).
Масштабируемые регионы
GDI+ значительно расширяет GDI благодаря поддержке регионов. В GDI регионы хранятся в координатах устройства, и единственным преобразованием, которое можно применить к региону, является преобразование. GDI+ хранит регионы в мировых координатах и позволяет региону проходить любое преобразование (например, масштабирование), которое может храниться в матрице преобразования. На следующем рисунке показана область до и после последовательности из трех преобразований: масштабирование, поворот и преобразование.
Альфа-смешивание
Обратите внимание, что на предыдущем рисунке вы видите нетрансформированную область (заполненную красным цветом) через преобразованную область (заполненную кистью штриховки). Это возможно за счет альфа-смешения, которое поддерживается GDI+. С помощью альфа-смешивания можно указать прозрачность цвета заливки. Прозрачный цвет смешивается с цветом фона — чем более прозрачным вы делаете цвет заливки, тем больше фон отображается. На следующем рисунке показаны четыре многоточия, заполненные одинаковым цветом (красным) на разных уровнях прозрачности.
Поддержка нескольких форматов изображений
GDI+ предоставляет классы Image, Bitmap и Metafile , которые позволяют загружать, сохранять и управлять изображениями в различных форматах. Поддерживаются следующие форматы:
- BMP
- GIF
- JPEG
- Exif
- PNG
- TIFF
- ICON
- WMF
- EMF