快速重新着色位图

时间:2018-05-13 07:30:31

标签: java android

我需要重新着色位图,根据HashMap,其中键是源颜色,值是目标颜色。

我通过迭代像素来实现结果:

public void recolor(Bitmap origBitmap, Bitmap newBitmap, Map<Integer, Integer> colorReplace) {
    for (x = 0; x < origBitmap.getWidth(); x++) {
        for (y = 0; y < origBitmap.getHeight(); y++ {
            newBitmap.setPixel(x, y, colorReplace.get(origBitmap.getPixel(x, y)));
        }
    }
}

看起来很完美,但即使在运行在超频i7 CPU上的仿真器上工作也很慢。在真实设备上工作非常慢,有时不稳定。

我搜索了一些方法,使它更快,更稳定。我认为它可以通过PorterDuffColorFilter或其他ColorFilter完成,但不了解如何。

感谢您的任何建议!

0 个答案:

没有答案