TransparentBlt函数用于进行从指定的原设备上下文到目标设备上下文图像位块的颜色传输
简言之,TransparentBlt函数主要用于从源图像中以位块的形式(一张位图可以被分为好几个不同颜色的位图块,可以理解为有颜色的小正方形色块组成的一张图片)传输图像到绘图窗口
函数常用功能
直接用于通过调用Windows GDI函数来在窗口中显示图片
用于位图的截图操作,由于这个函数将图像以位块的形式传输,所以我们可以通过只传输部分位块以达到截取部分图片的操作
用于实现透明色,由于这个函数将图像以为快的形式传输,所以我们可以通过只传输部分位块以达到实现透明效果,例如把不需要的部分全部调成一个图片中没有出现过的颜色(很重要,否则会造成图像缺失),然后设置若位块的颜色与之相符,色不传输,就达到了视线透明色的效果了
函数语言
函数参数
函数的返回值
如果该函数成功执行,则返回值为TRUE
.
如果该函数执行失败,则返回值为FALSE
.
函数的注意事项
TransparentBlt函数兼容的格式:bitmaps位图(DDBs)
TransparentBlt函数支持源位图的所有格式,但是对于32位的位图只复制alpha值。使用AlphaBlend函数来指定32位的位图中每个像素的透明度
如果源位图和目标位图的举行大小不相同,那么将会将源位图拉伸以匹配目标矩形的大小
当使用 SetStretchBltMode 函数的时候,BLACKONWHITE 和 WHITEONBLACK 的 IStretchMode 模式将会在 TransparentBLT 函数中转换为 COLORONCOLOR 模式
目标设备上下文指定目标坐标的转换类型,源设备上下文指定源坐标的转换类型
如果源或目标位图的宽度或高度为负,则 TransparentBlt 不会镜像(英文文档中用的是mirror)位图
在多显示器的系统中使用该函数时,hdcSrc 和 hdcDest 必须引用同一设备,否则该函数将失效,要在 DCs 之间传输不同设备的数据,请通过调用 GetDIBits 将内存位图转换为 DIB 。要将 DIB 显示到第二个设备请调用 SetDIBits 或StretchDIBits
最低客户端版本:Windows 2000 Professional(仅桌面应用)
最低服务器版本:Windows 2000 Server(仅桌面应用)
引用的头文件:WinGdi.h和Windows.h
引用的库文件:Msimg32.lib
引用的DLL文件:Msimg32.dll
使用示例
我的知乎专栏:https://zhuanlan.zhihu.com/p/165643195 欢迎关注
「艾尔登法环」梅琳娜手办开订 立体手办▪
万代「艾尔登法环」白狼战鬼手办开订 立体手办▪
「夏目友人帐」猫咪老师粘土人开订 立体手办▪
「五等分的新娘∬」中野三玖·白无垢版手办开订 立体手办▪
「海贼王」乌索普Q版手办开订 立体手办▪
良笑社「初音未来」新手办开订 立体手办▪
「黑岩射手DAWN FALL」死亡主宰手办开订 立体手办▪
「盾之勇者成名录」菲洛手办登场 立体手办▪
「魔法少女小圆」美树沙耶香手办开订 立体手办▪
「咒术回战」七海建人粘土人登场 立体手办▪
「五等分的新娘」中野二乃白无垢手办开订 立体手办▪
「为美好的世界献上祝福!」芸芸粘土人开订 立体手办▪
「公主连结 与你重逢」六星可可萝手办开订 立体手办▪
「女神异闻录5」Joker雨宫莲手办开订 立体手办▪
「间谍过家家」约尔・福杰粘土人登场 立体手办▪
「街角魔族 2丁目」吉田优子手办开订 立体手办▪
「火影忍者 疾风传」旗木卡卡西·暗部版粘土人登场 立体手办▪
「佐佐木与宫野」宫野由美粘土人开订 立体手办▪
「盾之勇者成名录」第2季拉芙塔莉雅手办开订 立体手办▪
「咒术回战」两面宿傩Q版坐姿手办开订 立体手办▪
「DATE·A·BULLET」时崎狂三手办开订 立体手办▪
「狂赌之渊××」早乙女芽亚里粘土人开订 立体手办▪
「魔道祖师」魏无羨粘土人开订 立体手办▪
「新·奥特曼」奥特曼手办现已开订 立体手办▪