游戏编程基础(一)GDI位图透明效果
来源:互联网 发布:一九八网络全是培训吗 编辑:程序博客网 时间:2024/05/02 06:45
GDI实现透明位图还是相当简单的
位图的透明原理:
1.位图白色位置的RGB值为{255,255,255}
2.位图黑色位置的RGB值为{0,0,0,}
3.准备两张图,要显示的图片背景设置为黑色(左图),用于屏蔽掉背景的图片背景设置为白色,显示图像部位设置为黑色(右图)
4.先用屏蔽图(右图)与背景图做“AND”运算,后将前景图(左图)于背景图做“OR”运算,即可实现透明效果
关键代码如下:
hdc = GetDC(hWnd);
mdc = CreateCompatibleDC(hdc);
bg = (HBITMAP)LoadImage(NULL,"testbg.bmp",IMAGE_BITMAP,1024,768,LR_LOADFROMFILE);
test1 = (HBITMAP)LoadImage(NULL,"test1.bmp",IMAGE_BITMAP,463,552,LR_LOADFROMFILE);
test2 = (HBITMAP)LoadImage(NULL,"test2.bmp",IMAGE_BITMAP,463,552,LR_LOADFROMFILE);
...........
BitBlt(hdc,0,0,1024,768,mdc,0,0,SRCCOPY);
SelectObject(mdc,test2);
BitBlt(hdc,150,200,463,552,mdc,0,0,SRCAND);
SelectObject(mdc,test1);
BitBlt(hdc,150,200,463,552,mdc,0,0,SRCPAINT);
这样一只可爱的小羊喝水图就出来了
最终效果图如下:
- 游戏编程基础(一)GDI位图透明效果
- 游戏编程基础(二)GDI透明半透明效果
- GDI+编程基础(一)
- GDI+编程基础(一)GDI+ Vs GDI
- GDI+编程基础(一)GDI+ Vs GDI
- GDI+编程基础(一)GDI+ Vs GDI
- GDI+编程基础(一)GDI+ Vs GDI
- GDI+编程基础(一)GDI+ Vs GDI
- GDI+编程基础(一)GDI+ Vs GDI
- GDI+编程基础(一)GDI+ Vs GDI
- GDI+编程基础(一)GDI+ Vs GDI
- GDI+编程基础(一)GDI+ Vs GDI
- GDI+编程基础(一)GDI+ Vs GDI
- GDI+编程基础(一)GDI+ Vs GDI
- GDI+编程基础(一)GDI+ Vs GDI
- GDI+编程基础(一)GDI+ Vs GDI
- GDI+编程基础(一)GDI+ Vs GDI
- GDI绘制透明位图
- visual studio中怎么把C#程序编译成exe文件
- DirectX9 SDK Samples(1) Tutorial1-Creating a device
- 谁是你生命中的贵人
- 学 Win32 汇编[12]: PTR、OFFSET、ADDR、THIS
- html:表单有select的都是下拉表单
- 游戏编程基础(一)GDI位图透明效果
- IE安全设置禁止访问其他域数据源的解决方法
- Windows 7 + SQL Server 2005 + Visual Studio 2008 安装过程体验
- New delete 与malloc free 的联系与区别
- Linear regression with one variable
- Boa服务器移植
- 学习笔记
- Android 移植到C#
- css()能读取所有的css样式和设置样式