Функция StretchDIBits копирует данные о цвете для прямоугольника пикселей в аппаратно-независимом растровом формате (DIB) в заданный прямоугольник приемника. Если приемный прямоугольник является большим чем исходный, эта функция растягивает ряды и столбцы данных о цвете, чтобы подогнать под приемный прямоугольник. Если приемный прямоугольник является меньшим чем исходный, эта функция сжимает ряды и столбцы при помощи использования заданной растровой операции.
Windows 98/Me, Windows 2000/XP: функция StretchDIBits была дополнена, чтобы дать возможность формат изображения JPEG или PNG передавать как исходное изображение.
Синтаксис
int StretchDIBits( HDC hdc, // дескриптор DC int XDest, // x-коорд.верхнего левого угла приемника int YDest, // y-коорд.верхнего левого угла приемника int nDestWidth, // ширина приемного прямоугольника int nDestHeight, // высота приемного прямоугольника int XSrc, // x-коорд.верхнего левого угла источника int YSrc, // y-коорд.верхнего левого угла источника int nSrcWidth, // ширина источникового прямоугольника int nSrcHeight, // высота источникового прямоугольника CONST VOID *lpBits, // биты рисунка CONST BITMAPINFO *lpBitsInfo,// данные рисунка UINT iUsage, // используемые параметры DWORD dwRop // код растровой операции ); |
Параметры
hdc
[in] Дескриптор принимающего контекста устройства.XDest
[in] Определяет x-координату левого верхнего угла принимающего прямоугольника, в логических единицах измерения.YDest
[in] Определяет y-координату левого верхнего угла принимающего прямоугольника, в логических единицах измерения.nDestWidth
[in] Определяет ширину принимающего прямоугольника, в логических единицах измерения.nDestHeight
[in] Определяет высоту принимающего прямоугольника, в логических единицах измерения.XSrc
[in] Определяет x-координату источникового прямоугольника в DIB, в пикселях.YSrc
[in] Определяет y-координату источникового прямоугольника в DIB, в пикселях.nSrcWidth
[in] Определяет ширину источникового прямоугольника в DIB, в пикселях.nSrcHeight
[in] Определяет высоту источникового прямоугольника в DIB, в пикселях.lpBits
[in] Указатель на биты аппаратно-независимого растрового формата (DIB), которые сохраняются как массив байтов. Подробную информацию см. разделе Замечания.lpBitsInfo
[in] Указатель на структуру BITMAPINFO, которая содержит информацию об растровом формате (DIB).iUsage
[in] Устанавливает, предусматривался ли член bmiColors структуры BITMAPINFO и, если это так, содержит ли член bmiColors значения (RGB) чистого красного, зеленого, синего цветов или индексы палитры.Параметр iUsage должен быть одним из нижеперечисленных значений.
Значение | Предназначение |
---|---|
DIB_PAL_COLORS | Массив состоит из 16-битовых индексов в логической палитре источникового контекста устройства. |
DIB_RGB_COLORS | Таблица цветов содержит значения констант RGB. |
Подробную информацию, см. разделе Замечаний.
dwRop
[in] Устанавливает, как исходные пиксели, текущая кисть принимающего контекста устройства и принимаемые пиксели должны быть объединены, чтобы формировать новое изображение. Подробную информацию, см. ниже в разделе Замечания.Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - число скопированных строк развертки.
Если функция завершается с ошибкой, возвращаемое значение - GDI_ERROR.
Windows NT/2000/XP: Чтобы получать дополнительные сведения об ошибке, вызовите GetLastError.
Windows 98/Me, Windows 2000/XP: Если драйвер не может поддерживать формат JPEG или PNG файла изображения, который передан в StretchDIBits, функция завершится ошибкой и возвратит значение GDI_ERROR. Если происходит ошибка, приложение должно возвратиться к своей собственной поддержке формата изображения JPEG или PNG, чтобы развернуть изображение в точечный рисунок, а затем передать его в StretchDIBits.
Замечания
Начало координат идущего снизу вверх растрового формата (DIB) - нижний левый угол; начало координат идущего сверху вниз растрового формата (DIB) - левый верхний угол.
Если знаки параметров nSrcWidth и nDestWidth или параметров nSrcHeight и nDestHeight различаются, функция StretchDIBits создает зеркальное изображение точечного рисунка. Если nSrcWidth и nDestWidth имеют разные знаки, функция создает зеркальное изображение точечного рисунка по оси X. Если nSrcHeight и nDestHeight имеют разные знаки, функция создает зеркальное изображение точечного рисунка по оси Y.
Windows 98/Me, Windows 2000/XP: Эта функция дает возможность формат изображения JPEG или PNG передавать как исходное изображение. При использовании каждый параметр остается тем же самым, кроме:
ICM: Управление цветом выполняется. Совокупность параметров цвета текущего контекста устройства используется как исходная конфигурация цветового пространства и используется sRGB цветовое пространство.
Код примера
Пример смотри в статье Изменение размеров JPEG или PNG изображения.
Смотри также
Обзор Точечные рисунки, Функции, используемые точечными рисунками, SetMapMode, SetStretchBltMode, BITMAPINFO
Размещение и совместимость StretchDIBits |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
Gdi32.lib |
Заголовочный файл |
|
- объявлено в |
Wingdi.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |