我的程序有一个方法应该获取图像和颜色,并将该图像中的所有像素变成该颜色,同时保持每个像素的透明度。
这可以在 Android 中使用 ColorMatrixColorFilter
轻松完成,而无需使用嵌套循环遍历整个图像并单独更改每个像素,这会明显变慢。
但是,我最近决定切换到 libgdx,这意味着我不能使用 ColorMatrixColorFilter
。 libgdx 是否有任何类可以做类似的事情,而无需我手动更改每个像素?
最佳答案
最好的方法是使用只有白色像素的纹理(不同的 alpha),并在使用 SpriteBatch.setColor(r,g,b,a)
绘制它们之前对其进行着色 - - 之后只需设置回 Color.WHITE
。
除了必须暂停逐像素变换纹理外,这样做最大的好处是纹理不需要在自己的文件中设置,而是可以放在同一个 TextureAtlas 中。其他未着色的纹理。因为不需要绑定(bind)不同颜色版本的纹理,SpriteBatch
最终减少了渲染调用,这意味着渲染速度更快。
关于android - libgdx 中的 ColorMatrixColorFilter equivlanet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13118845/