Функция StretchBlt

Declare Function StretchBlt Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal hSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

StretchBlt копирует часть изображения от одного устройства до другого. Эта функция также позволяет масштабировать(сжимать,растягивать,выворачивать наизнанку,задавая параметры с разными знаками) изображение, в отличие от функции BitBlt. В случае ошибки,функция возвращает 0,в успешном случае-возвращается 1.

hDestDC
Контекст устройства объекта-получателя.
x
Координата x точки, чтобы поместить изображение внутри цели.
y
Координата y точки, чтобы поместить изображение внутри цели.
nWidth
Ширина части изображения.
nHeight
Высота части изображения.
xSrc
Координата x левого верхнего угла части изображения в источнике.
ySrc
Координата y левого верхнего угла части изображения в источнике.
nSrcWidth
Ширина части изображения в источнике.
nSrcHeight
Высота части изображения в источнике.
dwRop
Флажки, определяющие, какой метод использовать, чтобы копировать исходное изображение:
SRCAND = &H8800C6
Логическое И двух номеров цвета ( источник And получатель).
SRCCOPY = &HCC0020
Точно копирование исходного изображения (получатель = источник).
SRCERASE = &H440328
Логическое And исходного изображения и двоичная инверсия получателя(получатель = источник And (Не получатель).
SRCINVERT = &H660046
Логическое Xor двух номеров цвета (получатель = источник Xor получатель).
SRCPAINT = &HEE0086
Логическое Or этих двух номеров цвета (получатель = источник Or получатель).

Пример:

' Копируем часть изображения из Picture1 в PictureBox2 и
' растягиваем его, чтобы утроить его первоначальную ширину. Первоначальные измерения изображения
' 16x32; его новые 48x32.
' Координаты источника: (45,50)-(60,81)
' Координаты получателя: (0,0)-(47,31)

Dim retval As Long  '  возвращаемое значение

retval = StretchBlt(Picture2.hdc, 0, 0, 48, 32, Picture1.hdc, 45, 50, 16, 32, SRCCOPY)

Схожие функции: BitBlt
Категория: Графика

В начало.