这个问题困扰几天了,不得已来这期盼高手能解决, 在directX8贴图里, 如何去除贴图背景颜色, 比如一副游戏画面里面 放个小人, 而那小人贴图背景是黑色,如何将之除去,让小人周围黑色变透明, 说关键几步就行了, 因为我书上有源码例子, 但他小人贴图格式是tga的我换成jpg或者BMP的就都不行了。 没办法,俺有英文阅读障碍,只有读翻译本,而翻译的实在是差。

解决方案 »

  1.   

    你现在用的那种方式,要使用带透明通道的图片才行. 
    tga 和 png 都可以带透明通道.而Jpge和普通的BMP都不带透明通道.如果要实现你描述的那种,可以使用CreateTextureFromFileEx在ColorKey中设定要透明的颜色就可以了.不过如果你的小人与背影之间有过度色的话.就会出现烦人的黑边.利用透明通道的图片出来的效果就很好.根据自已的情况选择吧.
      

  2.   

    而且要注意.小人中的颜色不能有与背景色相同的着色.不然,那些颜色也会变透明的.
    所以建议用带透明通道的图片.
    如果觉得tga图片太大,可以用PNG来代替.PNG文件较小,而且可以带透明通道.
      

  3.   

    to:3楼那位兄弟
    谢谢你的回答。我还问一个问题CreateTextureFromFile与CreateTextureFromFileEx是不是只能用一种了,还是2种可以一起用,比如加载背景的时候,可以用CreateTextureFromFile, 而给小人做混色处理的时候用CreateTextureFromFileEx,然后一起输入,可以这样搞? 还是只可以用一种。