使用java获取图像的颜色

时间:2013-05-02 21:28:34

标签: java

如何使用java

获取图像icon.png的颜色

实际上我有一个servlet,因为我将使用多部分文件传输发送图像, 现在服务器应该回复图标文件的颜色, 这里的图像文件只有一种颜色;

2 个答案:

答案 0 :(得分:2)

假设您有图像文件的路径:

Color getImageColor(File imagePath) {
    BufferedImage image = ImageIO.read(imagePath);
    int color = image.getRGB(0, 0);
    for (int r = 0; r < image.getHeight(); r += 1) {
        for (int c = 0; c < image.getWidth(); c += 1) {
            if (image.getRGB(c, r) != color) {
                throw new IllegalArgumentException("Image: " + imagePath + " is not a solid color.");
            }
        }
    }

    return new Color(color);
}

此代码假定图像确实只有一种颜色并仅拉出第一个像素。

循环用于确保整个图像是一种颜色。当然,有很多方法可以处理这种情况。

答案 1 :(得分:0)

你可以循环BufferedImage(两个循环 - 一个从0到宽度,一个从0到高),并获得调用getRgb(x,y)。然后计算每个不同的值。您可以使用Map(key = color,value =出现次数)。请注意,这将为您提供图像中每种颜色出现频率的计数。

相关问题