android - 更改位图的一种特定颜色

标签 android bitmap colorfilter android-color

我有一个加载位图的 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/

相关文章:

android - 使用android相机捕获图像后将Bitmap转换为Mat

android - 以编程方式更改图像的颜色Android

java - 与时区无关的日期/时间

android - 更新时删除应用程序数据

android - 如果子项在可扩展 ListView android中为空,如何单击组

java - 除非我等待接受照片,否则 BitmapFactory.decodeFile 为空

android - 删除使用隐私模式保存的图像

android - 使用 JNI 和 NDK 旋转位图

java - 如何在 Android 的可绘制对象中交换红色和蓝色?