1

如何icon.png使用java获取图像的颜色

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

4

2 回答 2

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);
}

此代码假定图像确实只有一种颜色,并且只提取第一个像素。

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

于 2013-05-02T21:33:15.747 回答
0

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

于 2013-05-02T21:30:02.650 回答