掩码图旋转

0

操作系统: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();
}
ava
Unbeatable

2021-1-30

问题已解决哈哈,刚刚看到LOST大神的一篇技术帖,用了它纯手工打的RotateImage解决了问题,感谢大神。附上大神技术帖链接 https://codebus.cn/lost/a/rotate  -  Unbeatable  2021-1-30
0

注意:掩码图不应该有透明色,要确保是纯色。

ava
慢羊羊

2021-1-30

技术讨论社区
相关提问