我必须在Android应用程序中实现一个函数,它返回图像某个区域的颜色。
我需要的不同于
getpixel() - 返回指定位置的颜色
因为我需要确定给定区域的颜色(例如,半径为3x3像素)。
让这个想法简要解释一下应用程序的操作原理:
在活动中,通过TileView显示汽车图片;每个部件(发动机罩,保险杠,车轮等)的颜色都不同(灰度),而汽车的边缘是黑色的。
每次触摸时,我都会在x,y坐标处对颜色进行采样,将其与数据库中存在的颜色列表进行比较,最后返回组件的名称。
一切都很完美,除非我接近图像的边缘(黑色),这是JPG,边缘趋于模糊,采样的颜色可能是“错误的”(属于其他组件)。
这样做的最佳解决方案是什么?这是我的想法是正确的吗?
答案 0 :(得分:1)
为此,您可能需要创建自己的逻辑。 如果我做对了你可能想做这样的事情,
创建一个方法以您想要的任何方式传递该区域,然后使用
getPixel()
您可以获得该区域的颜色,很有可能会找到一种颜色或多种颜色的多种色调。
因此,基于此,您可以存储您获得的颜色列表,您可以比较从数据库中获得的最多颜色,并为此编写逻辑。
我已经用这个想法从屏幕上获取图标颜色,然后用这种颜色写一些文字,比如你看过的NovaLauncher of android。