回 帖 发 新 帖 刷新版面

主题:关于黑色背景位图的问题~~~


最近我看一些游戏人物位图的设计,它上面好像没有用到屏蔽图,只有一张黑色背景图,觉得很奇怪。
有没有人能告诉我是怎么一回事呢??是不是真的能不用屏蔽图就可以实现去掉黑色的背景~
如果知道的话顺便也把实现的主要部分写下来,谢谢啊~~

回复列表 (共6个回复)

沙发

如果用 DX 或者 GDI+ 的话可以使用 ColorKey
也就是说,黑色(或者其他指定的颜色)不画

板凳

请问那个函数是怎么样的呢??
gdi+ 是怎么调用的呢?

由于初次见到这个,请见谅~~~·

3 楼

gdi+ 啊,我看看
我用 C# 给你写哈,你自己转成 C++ 的哈

GraphicsUnit gu = GraphicsUnit.Pixel;
ImageAttributes ia = new ImageAttributes();
ia.SetColorKey(Color.Black, Color.Black);
g.DrawImage(img, destRect, x, y, cx, cy, gu, ia);
// g 是 Graphics 对象
// img 是 Image 对象

4 楼

哈哈,虽然看不懂,但是还是很感谢你啊~~~

5 楼

SetWindowLong (hwnd,GCL_HBRBACKGROUND
           (LONG)CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT))

6 楼

这个黑色的背景色是因为他们采用的是二元光栅操作
他比屏蔽色执行起来更有效率,
因为它是二进制运算

我来回复

您尚未登录,请登录后再回复。点此登录或注册