Форум — Ответы     (  К темам )
 ?  UnKnown: Расскажите про BitBlt (03-01-2003 15:10:22)
Расскажите про BitBlt подробно. Для чего оно надо, и что с ее помощью можно сделать хорошего?
 Владимир (04-01-2003 22:40:40)
Функция BitBlt выполняет копирование изображения или его части из одного контекста устройства в другой,
смешивая цвета указанной операцией.

BOOL BitBlt (

HDC hdcDest, // дескриптор контекста устройства приемника(назначения)
Int nXDest, // x-координата левый верхний угол приемника
Int nYDest, // y-координата левый верхний угол приемника
Int nWidth, // ширина прямоугольника
Int nHeight, // высота прямоугольника

HDC hdcSrc, // дескриптор контекста устройства источника(исходный)
Int nXSrc, // x-координата левого верхнего угла источника
Int nYSrc, // y-координата левого верхнего угла источника
DWORD dwRop // код растровой операции
);

DwRop — устанавливает код растровой операции

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

Значение Описание
BLACKNESS Заполняет прямоугольник назначения, используя цвет, связанный с индексом 0 в физической палитре.
(Этот цвет черный для заданной по умолчанию физической палитры.)
DSTINVERT Инвертирует цвета прямоугольника назначения.
MERGECOPY Смешивает цвета исходного прямоугольника с указанным образцом, используя оператор AND.
MERGEPAINT Смешивает цвета инвертированного исходного прямоугольника с цветами прямоугольника назначения, используя оператор OR.
NOTSRCCOPY Копирует инвертированный исходный прямоугольник
NOTSRCERASE Смешивает цвета источника и прямоугольников назначения, используя оператор OR и затем инвертирует результирующий цвет.
PATCOPY Копирует указанный образец в растр назначения.
PATINVERT Смешивает цвета указанного образца с цветами прямоугольника назначения, используя оператор XOR.
PATPAINT Смешивает цвета образца с цветами инвертированного исходного прямоугольника, используя оператор OR.
SRCAND Смешивает цвета источника и прямоугольников назначения, используя оператор AND.
SRCCOPY Копирует исходный прямоугольник непосредственно в прямоугольник назначения.
SRCERASE Смешивает инвертированные цвета прямоугольника назначения с цветами исходного прямоугольника, используя оператор AND.
SRCINVERT Смешивает цвета источника и прямоугольников назначения, используя оператор XOR.
SRCPAINT Смешивает цвета источника и прямоугольников назначения, используя оператор OR.
WHITENESS Заполняет прямоугольник назначения, используя цвет, связанный с индексом 1 в физической палитре.
(Этот цвет белый для заданной по умолчанию физической палитры.)


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

Если функция выполняется успешно, возвращаемое значение отлично от нуля.
Если функциональные сбои, возвращаемое значение 0.
Чтобы получить расширенные данные об ошибках, вызовите GetLastError()

Замечания

Если есть эффект вращение или shear transformation в исходном контексте устройства, BitBlt возвращает ошибку.
Если другие эффекты существуют в исходном контексте устройства (and a matching transformation is not in effect in the destination device context), прямоугольник в контексте устройства назначения растянут, сжат, или повернут по мере необходимости.
Если цветные форматы источника и контекстов устройства назначения не соответствуют,
функция BitBlt преобразовывает исходный цветной формат, чтобы соответствовать формату назначения.

Также смотрите функции:
GetDeviceCaps, MaskBlt, PlgBlt, StretchBlt

Примеры применения смотрите на Форуме,
для этого задайте в Поиске по Форуму: BitBlt
или в Examples к C++Builder