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

How to get pixel color in a certain area

我必须在 Android 应用程序中实现一个功能,对我来说 return 图像特定区域的颜色。

我需要的与

不同

getpixel() - Returns the color at the specified location

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

为了使idea简单说明app的运行原理:

在 activity 中,一张汽车图片通过 TileView 显示;每个部分(引擎盖、保险杠、车轮等)的颜色都不同(灰度),而汽车的边缘是黑色的。

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

一切正常,除了当我接近图像的边缘(黑色)时,这是一个 JPG,边缘往往模糊并且采样的颜色可以是 "wrong"(属于其他组件)。

执行此操作的最佳解决方案是什么?我的想法对吗?

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

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

getPixel()

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

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

我已经使用这个想法从屏幕上获取图标颜色,并用该颜色编写文本,例如 android 的 NovaLauncher,如果您看到的话。