Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中,如何将位图上的颜色更改为其他颜色?_Android_Colors_Xor - Fatal编程技术网

在Android中,如何将位图上的颜色更改为其他颜色?

在Android中,如何将位图上的颜色更改为其他颜色?,android,colors,xor,Android,Colors,Xor,我有一个位图,希望能够将该位图中的所有黑色像素更改为蓝色。我知道你可以通过Bitmap.setPixel来实现这一点,但是这个过程非常慢(相信我,我试过了……甚至用setPixels代替setPixel) 对此进行研究是为了了解人们推荐使用PorterDuff Xor的地方,但没有任何关于如何成功实现这一点的帖子。很多人在问…没有人能说出答案 所以,使用、绘制、位图和画布,如何将每个黑色像素更改为所有蓝色像素 谢谢 您只需拖动位图的像素即可 myBitmap.getPixels(myPixels

我有一个位图,希望能够将该位图中的所有黑色像素更改为蓝色。我知道你可以通过Bitmap.setPixel来实现这一点,但是这个过程非常慢(相信我,我试过了……甚至用setPixels代替setPixel)

对此进行研究是为了了解人们推荐使用PorterDuff Xor的地方,但没有任何关于如何成功实现这一点的帖子。很多人在问…没有人能说出答案

所以,使用、绘制、位图和画布,如何将每个黑色像素更改为所有蓝色像素


谢谢

您只需拖动位图的像素即可

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。谢谢