1

请提出一种在位图中按颜色选择区域的有效方法。然后将此选定的区域颜色替换为您想要的颜色。

例如,如果图像包含四种颜色,例如红色、绿色、黄色、橙色。现在假设用户单击黄色,因此选择单击位置周围的黄色区域,现在将黄色替换为蓝色。

希望,我正确地解释了这个问题。如果需要更多说明,请发表评论。

据我所知,位图是一项消耗内存的任务,会导致内存不足错误。

请分享任何可以帮助我在我的应用中实现此功能的链接或示例代码。

4

3 回答 3

0

在花了很多时间之后,我得到了一个有用的链接来完成这项工作。它叫做 Kids Palette,我在这里分享 GitHub 上的源链接

于 2015-11-02T20:33:30.567 回答
0

使用 Palette API 怎么样?

于 2015-11-02T20:39:49.417 回答
0

如果你想获得每个像素的颜色,你可以这样做:

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 文档以了解如何执行此操作。处理大型位图

于 2015-10-31T14:49:16.650 回答