Функция StretchDIBits


Функция 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

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz