位块传输 BitBlt与StretchBlt

来源:互联网 发布:java 日志系统架构 编辑:程序博客网 时间:2024/06/05 20:52

BitBlt 函数原型:

BitBlt (hdcDst, xDst, yDst, cx, cy, hdcSrc, xSrc, ySrc, dwROP);

源图是指从(xSrc, ySrc)处和hdcSrc所标识的窗口的右下角所确定的矩形区域,目标图块的区域由 (xDst, yDst, cx, cy)确定的矩形区域限定。

BitBlt函数只复制了源图中(xSrc, ySrc, cx, cy)大小的一块图块,并非复制全部源图,(宽和高由目标区域的宽和高限定)

BitBlt函数只复制传输,而不进行拉伸和压缩。


StretchBlt函数原型:

StretchBlt(hdcDst, xDst, yDst, cxDst, cyDst,

                   hdcSrc, xSrc, ySrc, cxSrc, cySrc, dwROP);

源图实际上仍是从(xSrc, ySrc)处和hdcSrc所标识的窗口的右下角所确定的矩形区域,只不过StretchBlt函数隐含完成了两步操作:

即:先在源图中截取(xSrc, ySrc, cxSrc, cySrc)图块,再在目标区域(xDst, yDst, cxDst, cyDst)进行拉伸或压缩。

可以直接将(xSrc, ySrc, cxSrc, cySrc)区域看作是获取的源图,(xDst, yDst, cxDst, cyDst)作为目标区域,StrechBlt实现源图到目标区域的传输。


0 0