在Android中,如何将位图上的颜色更改为其他颜色?
我有一个位图,希望能够将该位图中的所有黑色像素更改为蓝色。我知道你可以通过Bitmap.setPixel来实现这一点,但是这个过程非常慢(相信我,我试过了……甚至用setPixels代替setPixel) 对此进行研究是为了了解人们推荐使用PorterDuff Xor的地方,但没有任何关于如何成功实现这一点的帖子。很多人在问…没有人能说出答案 所以,使用、绘制、位图和画布,如何将每个黑色像素更改为所有蓝色像素在Android中,如何将位图上的颜色更改为其他颜色?,android,colors,xor,Android,Colors,Xor,我有一个位图,希望能够将该位图中的所有黑色像素更改为蓝色。我知道你可以通过Bitmap.setPixel来实现这一点,但是这个过程非常慢(相信我,我试过了……甚至用setPixels代替setPixel) 对此进行研究是为了了解人们推荐使用PorterDuff Xor的地方,但没有任何关于如何成功实现这一点的帖子。很多人在问…没有人能说出答案 所以,使用、绘制、位图和画布,如何将每个黑色像素更改为所有蓝色像素 谢谢 您只需拖动位图的像素即可 myBitmap.getPixels(myPixels
谢谢 您只需拖动位图的像素即可 myBitmap.getPixels(myPixels,0,0,0,myBitmap.getWidth(),myBitmap.getHeight())
然后在myPixels上循环查找您想要的颜色,并将该像素修改为您喜欢的颜色 您只需拖动位图的像素即可 myBitmap.getPixels(myPixels,0,0,0,myBitmap.getWidth(),myBitmap.getHeight())
然后在myPixels上循环查找您想要的颜色,并将该像素修改为您喜欢的颜色 您是否确保同时使用
getPixels
而不是getPixel
?PorterDuff XOR应该可以工作,但也不一定那么快。虽然更困难的是,使用NDK和在C代码中进行位图操作是获得高性能的方法我没有尝试getPixel,只是尝试getPixel。我想我可以这样做,看看是否足够快。我认为PorterDuff方法应该是快速的,但我找不到一个这样做的例子。在过去的几个小时里,我一直在使用ColorMatrix,但当我把黑色换成其他颜色时,这似乎不起作用。只有红色、绿色或蓝色表示其他内容。是否确保同时使用getPixels
而不是getPixel
?PorterDuff XOR应该可以工作,但也不一定那么快。虽然更困难的是,使用NDK和在C代码中进行位图操作是获得高性能的方法我没有尝试getPixel,只是尝试getPixel。我想我可以这样做,看看是否足够快。我认为PorterDuff方法应该是快速的,但我找不到一个这样做的例子。在过去的几个小时里,我一直在使用ColorMatrix,但当我把黑色换成其他颜色时,这似乎不起作用。只有红色、绿色或蓝色与其他颜色不同。就是这样。转到getPixels而不是getPixel。谢谢成功了。转到getPixels而不是getPixel。谢谢