我正在使用 cocos2D-python 并且我正在使用 pyglet.image.load 和 pyglet.resource.image 加载图像,但它仍然在应该是透明的地方添加了一些白色像素。
我以前使用过 pygame,但从未体验过它。
如果重要,我使用paint.net并将图像另存为.png
提前致谢
https://dl.dropboxusercontent.com/u/58141766/white%20pixels%20%3B(.png
我正在使用 cocos2D-python 并且我正在使用 pyglet.image.load 和 pyglet.resource.image 加载图像,但它仍然在应该是透明的地方添加了一些白色像素。
我以前使用过 pygame,但从未体验过它。
如果重要,我使用paint.net并将图像另存为.png
提前致谢
https://dl.dropboxusercontent.com/u/58141766/white%20pixels%20%3B(.png
很明显,因为我想让它像素化,所以决定对它进行 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) ,这可能不是最有效的事情,但嗯。
只是为了让 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)