BitBlt函数解析

BitBlt函数解析一 BitBlt 函数的作用 该函数对指定的源设备环境中的像素进行位块转换 以传送到目标设备环境 二 BitBlt 函数原型 boolBitBlt HDChdcDest 指向目标设备环境的句柄 int nbsp nbsp nXDest 指定目标矩形区域坐上角的 X 轴逻辑坐标 int nbsp nbsp nYDest 指定目标矩形区域左上角的 Y 轴逻辑坐标

一、BitBlt函数的作用:

该函数对指定的源设备环境中的像素进行位块转换,以传送到目标设备环境。

二、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 //指定光栅操作码,这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。

);

三、常用的光栅操作码的含义:

    BLACKNESS:表示使用与物理调色板的索引0相关的色彩来填充目标矩形区域,(对缺省的物理调色板而言,该颜色为黑色)。

    DSTINVERT:表示使目标矩形区域颜色取反。

    MERGECOPY:表示使用布尔型的AND(与)操作符将源矩形区域的颜色与特定模式组合一起。

    MERGEPAINT:通过使用布尔型的OR(或)操作符将反向的源矩形区域的颜色与目标矩形区域的颜色合并。

    NOTSRCCOPY:将源矩形区域颜色取反,于拷贝到目标矩形区域。

    NOTSRCERASE:使用布尔类型的OR(或)操作符组合源和目标矩形区域的颜色值,然后将合成的颜色取反。

    PATCOPY:将特定的模式拷贝到目标位图上。

    PATPAINT:通过使用布尔OR(或)操作符将源矩形区域取反后的颜色值与特定模式的颜色合并,然后使用OR(或)操作符将该操作的结果与目标矩形区域内的颜色合并。

    PATINVERT:通过使用XOR(异或)操作符将源和目标矩形区域内的颜色合并。

    SRCAND:通过使用AND(与)操作符来将源和目标矩形区域内的颜色合并。

    SRCCOPY:将源矩形区域直接拷贝到目标矩形区域。

    SRCERASE:通过使用AND(与)操作符将目标矩形区域颜色取反后与源矩形区域的颜色值合并。

    SRCINVERT:通过使用布尔型的XOR(异或)操作符将源和目标矩形区域的颜色合并。

    SRCPAINT:通过使用布尔型的OR(或)操作符将源和目标矩形区域的颜色合并。

四、功能相似的函数:

1.StretchBlt:函数从源矩形中复制一个位图到目标矩形,必要时按目前设备设置的模式进行图像的拉伸或压缩。

原型如下:

BOOL StretchBlt (

HDC hdcDest, //指向目标设备环境的句柄。

int nXOriginDest, //指定目标矩形左上角的X轴坐标,按逻辑单位表示坐标。 

  intnYOriginDest, //指定目标矩形左上角的Y轴坐标,按逻辑单位表示坐标。 

  int nWidthDest, //指定目标矩形的宽度,按逻辑单位表示宽度。 

int nHeightDest, //指定目标矩形的高度,按逻辑单位表示高度。 

HDC hdcSrc, //指向源设备环境的句柄。 

int nXOriginSrc, //指向源矩形区域左上角的X轴坐标,按逻辑单位表示坐标。 

int nYOriginSrc,  //指向源矩形区域左上角的Y轴坐标,按逻辑单位表示坐标。 

int nWidthSrc, //指定源矩形的宽度,按逻辑单位表示宽度。 

int HeightSrc,//指定源矩形的高度,按逻辑单位表示高度。 

DWORD dwRop /指定要进行的光栅操作。

);

2.TransparentBlt:该函数对指定的源设备环境中的矩形区域像素的颜色数据进行位块(bit_block)转换,并将结果置于目标设备环境。

函数原型如下:

五、BitBlt、StretchBlt 、TransparentBlt的区别:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225695.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午8:45
下一篇 2026年3月17日 上午8:45


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号