使用pyglet加载图像会将某些透明像素变为白色

时间:2015-01-07 19:53:48

标签: python image transparency pyglet cocos2d-python

我正在使用cocos2D-python并且我正在使用pyglet.image.load和pyglet.resource.image加载图像,但它仍然添加了一些白色像素,它被禁止透明。

我之前使用过pygame但从未体验过它。

如果重要,我使用paint.net并将图像保存为.png

提前致谢

https://dl.dropboxusercontent.com/u/58141766/white%20pixels%20%3B(.png

2 个答案:

答案 0 :(得分:1)

显然是因为我希望它像素化它决定mipmap它或其他所以它消除了它的种类... 无论如何,我发现这是一个半工作的解决方案:

from pyglet.gl import *
glEnable(GL_TEXTURE_2D)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)

然后一个工作解决方案正在添加     glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST) 每次我加载一个纹理,可能不是最有效的事情,但是meh。

这是我发现它的地方: https://gamedev.stackexchange.com/questions/20297/how-can-i-resize-pixel-art-in-pyglet-without-making-it-blurry

答案 1 :(得分:1)

只是为Frothiny的回答添加一些清晰度:

他提到的那条线解决了这个问题,但它们的位置非常重要。通过在创建精灵后立即添加gl行,我得到了修复工作。

实施例

# Your imports...
from pyglet.gl import *
# Your program's code...
Sprite('someimage.png')
glEnable(GL_TEXTURE_2D)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)