位图是一个二维的位数组,它与图像的图素一一对应。当现实世界的图像被扫描成位图以后,图像被分割成网格,并以图素作为取样单位。在位图中的每个图素值指明了一个单位网格内图像的平均颜色。单色位图每个图素只需要一位,灰色或彩色位图中每个图素需要多个位。
画位图
BitBlt函数从称为「来源」的设备内容中将一个矩形区的图素传输到称为「目的(destination)」的另一个设备内容中相同大小的矩形区。
此函数的语法如下:
BitBlt (hdcDst, xDst, yDst, cx, cy, hdcSrc, xSrc, ySrc, dwROP) ;
xSrc和ySrc参数指明了来源图像左上角的坐标位置。
cx和cy参数是图像的宽度和高度。
xDst和yDst参数表示了复制图像位置左上角的坐标位置。
dwROP参数是位映像操作型态,可取以下值:
BLACKNESS 输出区域为黑色
DSTINVERT 反色输出区域
MERGECOPY 在源和目的间使用AND操作
MERGEPAINT 在反色后的目的和源间使用OR操作
NOTSRCCOPY 将反色后的源拷贝到目的区
PATINVERT 源和目的间进行XOR操作
SRCAND 源和目的间进行AND操作
SRCCOPY 复制源到目的区
SRCINVERT 源和目的间进行XOR操作
SRCPAINT 源和目的间进行OR操作
WHITENESS 输出区域为白色
拉伸位图
在BitBlt函数中,目的图像与来源图像的尺寸是相同的,因为函数只有两个参数来说明宽度和高度。如果您想在复制时拉伸或者压缩图像尺寸,可以使用StretchBlt函数。
StretchBlt函数的语法如下:
StretchBlt (hdcDst, xDst, yDst, cxDst, cyDst, hdcSrc, xSrc, ySrc, cxSrc, cySrc, dwROP) ;
此函数添加了两个参数。现在的函数就分别包含了目的和来源各自的宽度和高度。