操作系统:Windows10
编译环境:Visual C++ 6.0
遇到问题:用rotateimage语句来实现掩码图旋转,发现掩码图只有不透明部分旋转,而透明的部分并没有旋转,如何解决?
注:源图为白底、背景透明,掩码图为黑底、背景透明
#include<graphics.h>
#include<conio.h>
#define PI 3.1415926
IMAGE Back; //背景图
IMAGE Weapon1; //武器图
IMAGE Weapon1Y; //武器掩码图
IMAGE Weapon1_o; //武器图旋转后
IMAGE Weapon1Y_o; //武器掩码图旋转后
void loading()
{
loadimage(&Back,_T("E:\\壁纸\\1.jpg"));
loadimage(&Weapon1,_T("D:\\mini元气骑士\\素材\\weapon\\弹射冲锋枪.png")); //源图
loadimage(&Weapon1Y,_T("D:\\mini元气骑士\\素材\\weapon\\弹射冲锋枪Y.png")); //掩码图
}
void main()
{
loading();
initgraph(997,560);
putimage(0,0,&Back);
rotateimage(&Weapon1_o,&Weapon1,PI/2); //90度旋转源图
rotateimage(&Weapon1Y_o,&Weapon1Y,PI/2); //90度旋转掩码图
putimage(80,80,&Weapon1Y_o,NOTSRCERASE); //设置80不和下面160一样,方便看出掩码图旋转效果
putimage(160,160,&Weapon1_o,SRCINVERT);
_getch();
}