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


Функция EngStretchBlt (winddi.h)

Функция EngStretchBlt заставляет GDI выполнять растягивающую передачу битовых блоков.

Синтаксис

ENGAPI BOOL EngStretchBlt(
       SURFOBJ         *psoDest,
       SURFOBJ         *psoSrc,
       SURFOBJ         *psoMask,
       CLIPOBJ         *pco,
       XLATEOBJ        *pxlo,
  [in] COLORADJUSTMENT *pca,
  [in] POINTL          *pptlHTOrg,
  [in] RECTL           *prclDest,
  [in] RECTL           *prclSrc,
       POINTL          *pptlMask,
  [in] ULONG           iMode
);

Параметры

psoDest

Указатель на структуру SURFOBJ , описывающую поверхность, на которой выполняется рисование.

psoSrc

Указатель на структуру SURFOBJ, которая описывает исходную поверхность для передачи битового блока.

psoMask

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

Маска ограничивает область копируемых источников. Если указан этот параметр, он имеет неявный rop4 0xCCAA, то есть источник должен быть скопирован там, где маска имеет значение 1, но назначение должно оставаться в покое, где маска имеет значение 0.

Если этот параметр имеет значение NULL, rop4 неявно 0xCCCC, что означает, что источник должен быть скопирован везде в исходном прямоугольнике.

pco

Указатель на структуру CLIPOBJ , ограничивающую область, которая должна быть изменена в назначении. Службы GDI предоставляются для перечисления обрезной области в виде набора прямоугольников.

По возможности GDI упрощает обрезку. Однако, в отличие от DrvBitBlt, EngStretchBlt можно вызывать с помощью одного прямоугольника обрезки. Это предотвращает ошибки округления при обрезке выходных данных.

pxlo

Указатель на структуру XLATEOBJ , указывающую способ преобразования цветовых индексов между исходной и целевой поверхностями.

Эту структуру XLATEOBJ также можно запросить, чтобы найти цвет RGB для любого исходного индекса. В некоторых случаях для интерполяции цветов потребуется высококачественная растягивающая передача битовых блоков.

[in] pca

Указатель на структуру COLORADJUSTMENT, которая определяет значения настройки цвета, применяемые к исходному растровом рисунку перед растяжением битов. Дополнительные сведения см. в документации по Microsoft Windows SDK.

[in] pptlHTOrg

Указатель на структуру POINTL , которая определяет источник полутоновой кисти. Драйверы, использующие полутоновые кисти, должны выравнивать верхний левый пиксель шаблона кисти с этой точкой на поверхности устройства.

[in] prclDest

Указатель на структуру RECTL , которая определяет область для изменения в системе координат целевой поверхности. Этот прямоугольник определяется двумя точками, которые неправильно упорядочены, а это означает, что координаты второй точки не обязательно больше, чем координаты первой точки. Описанный прямоугольник не включает нижний и правый края. Эта функция никогда не вызывается с пустым прямоугольником назначения.

Если прямоугольник назначения не упорядочен, EngStretchBlt делает его упорядоченным.

[in] prclSrc

Указатель на структуру RECTL, которая определяет копируемые области в системе координат исходной поверхности. Прямоугольник будет сопоставляться с прямоугольником, определенным prclDest. Этой функции никогда не присваивается пустой исходный прямоугольник, а точки исходного прямоугольника всегда упорядочены правильно.

Сопоставление определяется prclSrc и prclDest. Точки, указанные в prclDest и prclSrc , находятся на целочисленных координатах, которые соответствуют пиксельным центрам. Прямоугольник, определенный двумя такими точками, считается геометрическим прямоугольником с двумя вершинами, координатами которых являются заданные точки, но с 0,5, вычитаемыми из каждой координаты. (Структуры POINTL — это сокращенная нотация для указания этих вершин дробной координаты.)

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

pptlMask

Указатель на структуру POINTL, которая определяет пиксель в заданной маске, соответствующий левому верхнему пикселю в исходном прямоугольнике. Этот параметр игнорируется, если маска не указана.

[in] iMode

Указывает, как объединяются исходные пиксели для получения выходных пикселей. Режим HALFTONE медленнее, чем в других режимах, но создает изображения более высокого качества.

Значение Значение
BLACKONWHITE При сжатии битового блока пиксели должны быть объединены с операцией BOOLEAN AND. При растягивая передача битового блока пиксели должны быть реплицированы.
COLORONCOLOR При сжимающейся передаче битового блока следует игнорировать достаточное количество пикселей, чтобы не нужно было объединять пиксели. При растягивая передача битового блока пиксели должны быть реплицированы.
ПОЛУТОНАХ Драйвер может использовать группы пикселей на выходной поверхности, чтобы наилучшим образом приблизить цвет или серый уровень входных данных.
WHITEONBLACK При сжатой передаче битового блока пиксели должны объединяться с логической операцией OR. При растягивая передача битового блока пиксели должны быть реплицированы.

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

Возвращаемое значение равно TRUE , если функция выполнена успешно. В противном случае это значение false , и отображается код ошибки.

Комментарии

Эта функция позволяет применять один и тот же алгоритм полутонирования к растровым изображениям GDI и поверхностям устройств.

Драйвер должен вызвать EngStretchBlt , если он подключил DrvStretchBlt и вызывается для выполнения действий, которые драйвер не поддерживает.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows 2000 и более поздних версиях операционных систем Windows.
Целевая платформа Универсальное
Верхняя часть winddi.h (включая Winddi.h)
Библиотека Win32k.lib
DLL Win32k.sys

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

CLIPOBJ

DrvBitBlt

DrvStretchBlt

SURFOBJ

XLATEOBJ