BitBlt函数解析
来源:互联网 发布:淘宝买电视机靠谱吗 编辑:程序博客网 时间:2024/05/16 11:23
一、BitBlt函数的作用:
该函数对指定的源设备环境中的像素进行位块转换,以传送到目标设备环境。
二、BitBlt 函数原型:
bool BitBlt (
HDChdcDest, //指向目标设备环境的句柄
int nXDest,//指定目标矩形区域坐上角的X轴逻辑坐标
int nYDest,//指定目标矩形区域左上角的Y轴逻辑坐标
int nWidth, //指定源和目标矩形区域的逻辑宽度
int nHeight,//指定源和目标矩形区域的逻辑高度
HDChdcSrc,//指向源设备环境的句柄
int nXSrc,/指定源矩形区域左上角的X轴逻辑坐标
int nYSrc,//指定源矩形区域左上角的Y轴逻辑坐标
DWORDdwRop //指定光栅操作码,这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。
);
三、常用的光栅操作码的含义:
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(或)操作符将源和目标矩形区域的颜色合并。
WHITENESS:使用与物理调色板中索引1有关的颜色填充目标矩形区域。(对于缺省物理调色板来说,这个颜色就是白色)。
四、功能相似的函数:
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)转换,并将结果置于目标设备环境。
函数原型如下:
BOOL TransparentBlt(
_In_ HDC hdcDest,
_In_ int xoriginDest,
_In_ int yoriginDest,
_In_ int wDest,
_In_ int hDest,
_In_ HDC hdcSrc,
_In_ int xoriginSrc,
_In_ int yoriginSrc,
_In_ int wSrc,
_In_ int hSrc,
_In_ UINT crTransparent//RGB颜色在源位图被视为透明(以上其他同StretchBlt )。
);
五、BitBlt、StretchBlt 、TransparentBlt的区别:
BitBlt直接按你指定的大小输出源dc到目标dc,而StretchBlt 会调整你源dc大小,使之适应你所指定的目标dc大小,再输出。StretchBlt 输出的图总是能够充填满你指定的目标DC区域,而BitBlt输出的图无法布满目标dc制定区域。TransparentBlt和StretchBlt 相似也可以缩放,但他可以指定透明色。
- BitBlt函数解析
- BitBlt函数
- BitBlt()函数
- BitBlt函数用法
- BitBlt函数的用法
- BitBlt函数介绍
- 自定义Bitblt函数
- C++中Bitblt函数
- bitblt函数的注意事项
- BitBlt类函数
- MFC函数之BitBlt
- BitBlt函数用法
- MFC函数之BitBlt
- Bitblt函数(API)祥解
- Bitblt函数的基本用法
- Bitblt函数(API)祥解
- BitBlt贴图函数的学习
- Bitblt函数(API)详解
- Tomcat 生产服务器性能优化
- gethostbyname() -- 用域名或主机名获取IP地址
- [Java] 遍历指定包名下所有的类(支持jar)
- 优秀Python学习资源收集汇总(强烈推荐)
- Cocos2d-x设计模式之九:委托和委托设计模式
- BitBlt函数解析
- 集合的前N个元素
- Treap 基本操作
- 第一章 lua与c++的互调
- Java Web项目报错总结
- HBase完全分布式安装过程详解
- UVa:11464 Even Parity
- com.mysql.jdbc.CommunicationsException: The driver was unable to create a connection......
- 微软官方中文在线MSDN(包含VS2005,.NET FrameWork,SqlServer2005)