我有一个加载位图的 ImageView
。在此位图中,我想用另一种颜色替换给定颜色的所有像素。我对此进行了广泛搜索,但大多数答案似乎要么是指使用标准 ColorFilter
(将色调应用于 所有 像素),要么是手动循环遍历所有像素和如果颜色与给定的输入颜色匹配,则替换该颜色。
真的没有更标准化的方法来仅对给定的单一颜色应用滤镜吗?或者从位图和给定的单一颜色创建蒙版,然后使用该蒙版应用滤镜?如果我不得不手动改变位图并编写代码来改变每个像素,我会感到非常惊讶!?
请注意,我还想确保抗锯齿等未被破坏。当使用标准的 ColorFilter
/android:tint
时,圆角抗锯齿等会被保留。我只是想针对给定的颜色或颜色范围有选择地应用滤镜。有这方面的 API 吗?
最佳答案
Open CV for Android 似乎是您需要的东西: https://opencv.org/platforms/android/
您可以在此处找到查找给定颜色像素的示例:OpenCV Android Green Color Detection
如果您的位图是某种真实的照片,并且您正在寻找能够捕捉到某些颜色幽灵部分的东西,那么 OpenCV 可能是最佳选择。
关于android - 更改位图的一种特定颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49371978/