Растровые изображения, пиктограммы и метафайлы, страница 4

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

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

В табл. 13.1 приведены функции для работы с растровыми изображениями, пиктограммами и метафайлами. За таблицей следует подробное описание функций.

Таблица 13.1. Функции для работы с растровыми изображениями, пиктограммами и метафайлами

Функция

Назначение

BitBIt

Копирует растровое изображение из контекста устройства памяти в контекст другого устройства

CloseEnhMetaFile

Закрывает контекст устройства (DC) расширенного метафайла и возвращает дескриптор, который обозначает метафайл

CopyEnhMetaFile

Копирует расширенный метафайл в файл или память

Copykon

Копирует пиктограмму из другого модуля в текущий модуль

Copylmage

Создает новое изображение (пиктограмму, курсор или растровое изображение) и копирует в него атрибуты другого изображения

CreateBftmap

Создает растровое изображение на основе массива двоичных значений цвета

CreateBitmaplndirect

Создает растровое изображение на основе данных в структуре данных BITMAP

CreateCompatibleBttmap

Создает в памяти растровое изображение, совместимое с устройством

CreateDIBttmap

Создает в памяти растровое изображение на основе данных аппаратно-независимого растрового изображения (DIB)

CreateDIBSection

Создает аппаратно-независимое растровое изображение (DIB), в которое могут непосредственно выполнять запись и функции GDI, и приложения

CreateEnhMetaFile

Создает контекст устройства (DC) для расширенного метафайла

Createlcon

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

CreafelconFromResource

Создает пиктограмму или курсор из двоичных данных ресурса, описывающих пиктограмму

CreatelconFromResourceEx

Создает пиктограмму или курсор требуемого размера из двоичных данных ресурса, описывающих пиктограмму

Createlconlndirect

Создает пиктограмму или курсор по данным структуры ICONINFO

DeleteEnhMetaFile

Удаляет расширенный метафайл

Destroylcon

Уничтожает пиктограмму, ранее созданную функцией Createlcon

Drawlcon

Выводит пиктограмму на устройство

DrawlconEx

Выводит пиктограмму указанного размера на устройство с использованием растровых операций

EnumEnhMetaFile

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

GdiComment

Помещает комментарий в расширенный метафайл

GetBitmapDimensionEx

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

GetDIBits

Извлекает двоичные данные растрового изображения и копирует их в буфер с использованием указанного формата

GetEnhMetaFile

Создает дескриптор, который обозначает расширенный метафайл, хранимый в файле

GetEnhMetaFileBits

Извлекает содержимое расширенного метафайла

GetEnhMetaFileDescription

Извлекает необязательное текстовое описание из расширенного метафайла

GetEnhMetaFileHeader

Извлекает запись, содержащую заголовок расширенного метафайла

GetEnhMetaFilePaletteEntries

Извлекает необязательные элементы палитры из расширенного метафайла

Getlconlnfo

Извлекает информацию о пиктограмме или курсоре

GetMetaRgn

Определяет текущую метаобласть для контекста устройства

GetStretchBltMode

Определяет текущий режим растяжения растрового изображения для контекста устройства

GetWinMetaFileBits

Преобразует расширенный метафайл в метафайл Windows 3.x

LoadBitmap

Загружает ресурс растрового изображения в память

Loadlcon

Извлекает дескриптор пиктограммы, содержащейся в файле ресурса программы

Loadlmage

Извлекает дескриптор изображения (пиктограммы, курсора или растрового изображения), содержащегося в файле ресурса программы

LookuplconldFromDirectory

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

LookuplconldFromDirecforyEx

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

PatBIt

Выводит на устройство повторяющийся рисунок кисти

PlayEnhMetaFile

Выводит расширенный метафайл в контекст устройства

PlayEnhMetaFileRecord

Воспроизводит запись расширенного' метафайла, выполняя функции интерфейса графических устройств (GDI), указанные в записи

SetBitmapDimensionEx

Устанавливает для растрового изображения предпочтительные размеры

SetDIBits

Устанавливает в качестве пиксельных данных аппаратно-независимого растрового изображения (DIB) данные из буфера памяти

SetDIBitsToDevice

Выводит данные из аппаратно-независимого растрового изображения (DIB) непосредственно в контекст устройства

SetEnhMetaFileBrts

Создает расширенный метафайл в памяти из предоставленных данных

SetMetaRgn

Создает пересечение текущей области отсечения контекста устройства с текущей метаобластью и сохраняет полученную область в качестве новой метаобласти для контекста устройства

SetStretchBttMode

Устанавливает режим растяжения растрового изображения для функции StretchBIt

SetWinMefaFileBtts

Преобразует метафайл Windows 3.x в расширенный метафайл

StretchBIt

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

StretchDIBfe

Выводит данные из DIB непосредственно в контекст устройства, растягивая и/или сжимая изображение в процессе его вывода

BitBlt                                    Windows 98   • Windows 2000

Описание

BitBlt — стандартная функция вывода растрового изображения. Эта функция копирует растровое изображение из одного контекста устройства памяти в другой, например в контекст устройства какого-либо окна. Для этого вначале для контекста устройства памяти, созданного с помощью функции CreateCompatibleDC, должно быть выбрано растровое изображение. Это растровое изображение может быть скомбинировано с существующим фоновым изображением с использованием любого из кодов растровой операции. Функцию BitBlt поддерживают не все устройства. Чтобы определить, поддерживаются ли операции функции BitBlt, необходимо проверить значение RASTERCAPS, возвращенное функцией GetDeviceCaps.

Синтаксис

BOOL BitBlt( HOC hdcDest, hit nXDest, int nYDest, hit nWidth, int nHeight, HDC hdcSrc, tat nXSrc, tat nYSrc, DWORD dwRop )

Параметры

hdcDest

HOC. Дескриптор контекста устройства, который должен принять растровое изображение.

nXDest

int. Логическая координата х левого верхнего угла прямоугольной области назначения.

nYDest

int. Логическая координата у левого верхнего угла прямоугольной области назначения.

nWidth

int. Ширина прямоугольных областей источника и назначения в логических единицах длины.

nHeight

int. Высота прямоугольных областей источника и назначения в логических единицах длины.

hdcSrc

HDC. Контекст устройства, с которого должно быть скопировано растровое изображение. Это — обычно контекст устройства памяти, созданный функцией CreateCompatibleDC.

nXSrc

int. Логическая координата х левого верхнего угла прямоугольной области источника.

Таблица 13.2. Коды растровых операций

Значение

Описание

BLACKNESS

Установить для всего вывода цвет, связанный с индексом 0 физической палитры (в физической палитре, заданной по умолчанию, это — черный цвет).

CAPTUREBLT

Включить любые окна, которые накладываются на данное окно в результирующем изображении.

DSTINVERT

Инвертировать прямоугольную область назначения.

MERGECOPY

Растровые изображения источника и назначения комбинируются с помощью логического оператора AND.

MERGEPAINT

Растровые изображения источника и назначения комбинируются с помощью логического оператора OR.

NOMRRORBITMAP

Исключить возможность зеркально отображать растровое изображение.

NOTSRCCOPY

Инвертировать растровое изображение источника и затем скопировать его в область назначения.

NOTSRCERASE

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

PATCOPY

Скопировать повторяющийся рисунок в область назначения.

PATINVERT

Объединить растровое изображение назначения с повторяющимся рисунком с использованием логического оператора XOR.

PATPA1NT

Скомбинировать цвета повторяющегося рисунка с цветами инвертированной прямоугольной области источника с использованием логического оператора OR. Результат комбинируется с цветами растрового изображения назначения с использованием логического оператора OR.

SRCAND

Скомбинировать растровые изображения источника и назначения с использованием логического оператора  AND.

SRCCOPY

Скопировать область источника непосредственно в область назначения.

SRCERASE

Скомбинировать инвертированные цвета растрового изображения назначения с цветами растрового изображения источника с использованием логического оператора AND. •

SRONVERT

Скомбинировать растровые изображения источника и назначения с использованием логического оператора XOR.

SRCPAINT

Скомбинировать растровые изображения источника и назначения с использованием логического оператора OR.

WHITENESS

Установить для всего вывода цвет, связанный с индексом 1  в физической палитре (в физической палитре, заданной по умолчанию, это — белый цвет).

nYSrc

int. Логическая координата у левого верхнего угла прямоугольной области источника.

dwRop

DWORD. Код растровой операции. Эти коды определяют, как данные цвета для прямоугольной области источника должны быть объединены с данными цвета для прямоугольной области назначения для получения окончательного цвета.  Некоторые широко применяемые коды растровых операций приведены в табл. 13.2.