如何重复返回颜色的方法?

时间:2013-05-05 23:17:34

标签: java count

类似于:

public Color colorMoreTimesRepeated()
{    


}

而且我不知道如何制作一个计算不同颜色的变量,并返回重复多次的变量。

想法是计算图像的所有颜色并给出重复多次的颜色,我尝试过使用* 2旅程,当重复任何颜色时,它开始计数,最后它返回一个更重复的。

   *for(int i=0;i< high;i++){
       for(int j=0;j<wide;j++){*

1 个答案:

答案 0 :(得分:0)

根据您的问题,我了解您要识别填充给定图像中最大像素数的颜色。

如果我是对的,你可以使用以下方法!

private static Color getColorOccuringMaxTimesInImage(File imageFile) throws IOException
{
    BufferedImage image = ImageIO.read(imageFile);
    int width = image.getWidth();
    int height = image.getHeight();

    Map<Integer, Integer> colors = new HashMap<Integer, Integer>();

    int maxCount = 0;
    Integer maxColor = 0;

    for (int x = 0; x < width; x++)
    {
        for (int y = 0; y < height; y++)
        {
            Integer color = image.getRGB(x, y);
            Integer count = colors.get(color);
            if (count == null)
                count = 0;

            Integer next = count + 1;
            colors.put(color, next);

            if (next > maxCount)
            {
                maxCount = next;
                maxColor = color;
            }
        }
    }

    return new Color(maxColor.intValue());
}