Java图片颜色区域区分

时间:2012-04-04 00:31:53

标签: java colors photo pixels mouselistener

我有this图片,我希望能够阅读每张图片,将其加载到绘图方法中,并将鼠标侦听器添加到每个颜色点,但不能添加任何黑色背景。我不希望将任何黑色背景包含为“按钮”,并且只有彩色斑点具有自己的鼠标滑块,因此我可以区分我按下的哪个颜色点。有没有人有任何想法?谢谢!

2 个答案:

答案 0 :(得分:1)

我想你可以这样接近它:

List<Shape> buttons = ...

for each pixel in the picture, top left to bottom right {
   if the pixel is not black {
       if the pixel is not already contained in one of the buttons {
           iterate over every pixel towards the right until you reach a different color
           iterate over every pixel towards the bottom until you reach a different color

           // now you have the bounds of your button
           // create a new Rectangle and add it to your list.
       }
   }
}

我从来没有尝试过这样的事情,也没有测试过上面的方法,但对我来说似乎应该有用。

为什么你不能只用JButtonJPanel复制图片并简化你的生活?

答案 1 :(得分:1)

mouseListener返回一个位置,因此我将使用该位置检查相应像素处的图像,然后分支以执行所需的操作。如果像素变成黑色,那么你就什么都不做。

可以通过BufferedImage对象和Raster检查图像。

或者,可以通过BufferedImage和Raster检查图像,并为每个颜色方块创建相应的对象,分别打印和处理每个颜色方块。