我有一堆小的两个颜色的png图像,我想有效地将两种颜色中的一种颜色改为另一种颜色。说RED => BLUE
。
我知道我可以循环每个像素或使用Bitmap.setXfermode
来做这件事,但这对于这样一个简单的问题感觉非常浪费。我想要做的是访问文件的标题并直接在颜色表中更改它。这暗示png:
被编入索引http://developer.android.com/guide/topics/resources/drawable-resource.html#Bitmap:
注意:aapt工具可以通过无损图像压缩自动优化位图文件。例如,不需要超过256种颜色的真彩色PNG可以转换为带有调色板的8位PNG。这将产生质量相同但需要较少内存的图像。因此请注意,放置在此目录中的图像二进制文件可能会在构建期间发生更改。如果您打算将图像作为位流读取以将其转换为位图,请将图像放在res / raw /文件夹中,而不是优化它们。
我放在“项目”中的文件是png图像的索引,因此我确信它们实际上是索引的,并且确实有一个颜色表。在制作Bitmap对象之前,我是否必须将文件读取为二进制数据并进行操作?我真的更喜欢,如果不是这样,但有一些隐藏的Bitmap.switchColor(Col1, Col2
);这样就可以了,因为我希望能够切换回第三种颜色。
请仅使用android相关的答案,而不是一般的答案,因为我只是在Android中使用android类来寻找如何做到这一点。
提前致谢