最近某次Windows程序设计的作业,老师让我们完成在游戏背景上贴人物图,并且人物能根据键盘的操作完成简单的走动,然后就遇到问题了……人物背景没办法透明化。
#include <windows.h> #pragma comment(lib,"Msimg32.lib") //TransparentBlt函数包含的库文件
2、关于TransparentBlt函数参数的定义:
TransparentBltm( HDC mdc, //目标DC(人物图将要被放上去的DC) int nXOriginDest, //目标矩形左上角x坐标(人物图的起始x坐标) int nYOriginDest, //目标矩形左上角y坐标(人物图的起始y坐标) int nWidthDest, //目标矩形的宽度(贴在背景上的人物图的宽度) int hHeightDest,//目标矩形的高度(贴在背景上的人物图的高度) HDC bufdc, //指向源设备环境的句柄(已经贴上人物贴图的DC) Int nXOriginSrc,//源矩形左上角x坐标 int nYOriginSrc, //源矩形左上角y坐标 int nWidthSrc, //准备贴在背景上的贴图的宽度 int nHeightSrc,//准备贴在背景上的贴图的高度 UINT crTransparent//RGB值,贴图中准备去掉的颜色的RGB )
新的问题,用了这个函数以后发现我的小女孩的背景依旧残留着黑色(用PS把背景弄成黑色了),是这个样子的,请忽略模糊的画质

把图片转换成256色就可以啦

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