Поделиться через


Функция StretchBlt (wingdi.h)

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

Синтаксис

BOOL StretchBlt(
  [in] HDC   hdcDest,
  [in] int   xDest,
  [in] int   yDest,
  [in] int   wDest,
  [in] int   hDest,
  [in] HDC   hdcSrc,
  [in] int   xSrc,
  [in] int   ySrc,
  [in] int   wSrc,
  [in] int   hSrc,
  [in] DWORD rop
);

Параметры

[in] hdcDest

Дескриптор контекста целевого устройства.

[in] xDest

Координата X в логических единицах верхнего левого угла прямоугольника назначения.

[in] yDest

Координата Y в логических единицах верхнего левого угла прямоугольника назначения.

[in] wDest

Ширина (в логических единицах) прямоугольника назначения.

[in] hDest

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

[in] hdcSrc

Дескриптор контекста исходного устройства.

[in] xSrc

Координата X в логических единицах верхнего левого угла исходного прямоугольника.

[in] ySrc

Координата Y в логических единицах верхнего левого угла исходного прямоугольника.

[in] wSrc

Ширина исходного прямоугольника в логических единицах.

[in] hSrc

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

[in] rop

Выполняемая растровая операция. Коды растровых операций определяют, как система объединяет цвета в операциях вывода, которые включают в себя кисть, исходное растровое изображение и растровое изображение назначения.

Список распространенных кодов растровых операций (ROP) см. в разделе BitBlt . Обратите внимание, что ROP CAPTUREBLT обычно не может использоваться для печати контекстов устройства.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение.

Комментарии

StretchBlt растягивает или сжимает исходное растровое изображение в памяти, а затем копирует результат в прямоугольник назначения. Это может быть совместимое растровое изображение (DDB) или выходные данные CreateDIBSection. Данные цвета для пикселей шаблона или назначения объединяются после растяжения или сжатия.

При записи расширенного метафайла возникает ошибка (и функция возвращает значение FALSE), если контекст исходного устройства определяет контекст устройства с расширенным метафайлом.

Если для указанной растровой операции требуется кисть, система использует кисть, выбранную в данный момент в контексте целевого устройства.

Координаты назначения преобразуются с помощью преобразования, указанного в настоящее время для контекста целевого устройства; Исходные координаты преобразуются с помощью преобразования, указанного в настоящее время для контекста исходного устройства.

Если преобразование источника имеет поворот или сдвига, возникает ошибка.

Если растровые изображения назначения, источника и шаблона имеют не тот же формат цвета, StretchBlt преобразует исходные и узорные растровые изображения в соответствии с растровым рисунком назначения.

Если StretchBlt необходимо преобразовать монохромное растровое изображение в цветовое растровое изображение, он устанавливает белые биты (1) в цвет фона, а черные биты (0) — в цвет переднего плана. Чтобы преобразовать цветное растровое изображение в монохромное, он устанавливает пиксели, соответствующие цвету фона, в белый (1), а все остальные пиксели — черные (0). Используются цвета переднего плана и фона контекста устройства назначения с цветом.

StretchBlt создает зеркало изображение растрового изображения, если знаки параметров nWidthSrc и nWidthDest или параметры nHeightSrc и nHeightDest отличаются. Если nWidthSrc и nWidthDest имеют разные знаки, функция создает зеркало изображение растрового изображения вдоль оси X. Если nHeightSrc и nHeightDest имеют разные знаки, функция создает зеркало изображение растрового изображения вдоль оси Y.

Не все устройства поддерживают функцию StretchBlt . Дополнительные сведения см. в разделе GetDeviceCaps.

ICM: При выполнении операции заливки управление цветом не выполняется.

При использовании в системе с несколькими мониторами hdcSrc и hdcDest должны ссылаться на одно и то же устройство, иначе функция завершится сбоем. Чтобы передать данные между контроллерами домена для разных устройств, преобразуйте растровое изображение памяти в DIB, вызвав Метод GetDIBits. Чтобы отобразить DIB на втором устройстве, вызовите SetDIBits или StretchDIBits.

Примеры

Пример см. в разделе Масштабирование изображения.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wingdi.h (включая Windows.h)
Библиотека Gdi32.lib
DLL Gdi32.dll

См. также раздел

BitBlt

Функции точечных рисунков

Общие сведения о точечных изображениях

CreateDIBSection

Getdibits

GetDeviceCaps

MaskBlt

PlgBlt

SetDIBits

SetStretchBltMode

StretchDIBits