如何获得某个区域的像素颜色

时间:2017-12-12 10:43:44

标签: android colors getpixel

我必须在Android应用程序中实现一个函数,它返回图像某个区域的颜色。

我需要的不同于

  

getpixel() - 返回指定位置的颜色

因为我需要确定给定区域的颜色(例如,半径为3x3像素)。

让这个想法简要解释一下应用程序的操作原理:

在活动中,通过TileView显示汽车图片;每个部件(发动机罩,保险杠,车轮等)的颜色都不同(灰度),而汽车的边缘是黑色的。

每次触摸时,我都会在x,y坐标处对颜色进行采样,将其与数据库中存在的颜色列表进行比较,最后返回组件的名称。

一切都很完美,除非我接近图像的边缘(黑色),这是JPG,边缘趋于模糊,采样的颜色可能是“错误的”(属于其他组件)。

这样做的最佳解决方案是什么?这是我的想法是正确的吗?

1 个答案:

答案 0 :(得分:1)

为此,您可能需要创建自己的逻辑。 如果我做对了你可能想做这样的事情,

创建一个方法以您想要的任何方式传递该区域,然后使用

getPixel()

您可以获得该区域的颜色,很有可能会找到一种颜色或多种颜色的多种色调。

因此,基于此,您可以存储您获得的颜色列表,您可以比较从数据库中获得的最多颜色,并为此编写逻辑。

我已经用这个想法从屏幕上获取图标颜色,然后用这种颜色写一些文字,比如你看过的NovaLauncher of android。