请提出一种在位图中按颜色选择区域的有效方法。然后将此选定的区域颜色替换为您想要的颜色。
例如,如果图像包含四种颜色,例如红色、绿色、黄色、橙色。现在假设用户单击黄色,因此选择单击位置周围的黄色区域,现在将黄色替换为蓝色。
希望,我正确地解释了这个问题。如果需要更多说明,请发表评论。
据我所知,位图是一项消耗内存的任务,会导致内存不足错误。
请分享任何可以帮助我在我的应用中实现此功能的链接或示例代码。
请提出一种在位图中按颜色选择区域的有效方法。然后将此选定的区域颜色替换为您想要的颜色。
例如,如果图像包含四种颜色,例如红色、绿色、黄色、橙色。现在假设用户单击黄色,因此选择单击位置周围的黄色区域,现在将黄色替换为蓝色。
希望,我正确地解释了这个问题。如果需要更多说明,请发表评论。
据我所知,位图是一项消耗内存的任务,会导致内存不足错误。
请分享任何可以帮助我在我的应用中实现此功能的链接或示例代码。
在花了很多时间之后,我得到了一个有用的链接来完成这项工作。它叫做 Kids Palette,我在这里分享 GitHub 上的源链接。
使用 Palette API 怎么样?
如果你想获得每个像素的颜色,你可以这样做:
for(int i=0;i<bitmap.getWidth();i++){
for(int j=0;j<bitmap.getHeigth();j++){
int pixel = bitmap.getPixel(i,j);
if(pixel == Color.RED){
//Do something
}
}
}
所以你可以做的是首先找到用户点击的像素的颜色,然后使用上述技术找到该特定颜色的像素。
您可以使用以下内容获取点击像素的颜色代码:
int ColorCode = imageView.getDrawingCache().getPixel(x, y);
这里 x,y 是坐标。您可以参考此链接以获取更多信息 -链接
并且不要忘记在将位图加载到内存之前按比例缩小它以防止出现OutOfMemory
问题。您可以参考 android 文档以了解如何执行此操作。处理大型位图