如何使用java
获取图像icon.png
的颜色
实际上我有一个servlet,因为我将使用多部分文件传输发送图像, 现在服务器应该回复图标文件的颜色, 这里的图像文件只有一种颜色;
答案 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 =出现次数)。请注意,这将为您提供图像中每种颜色出现频率的计数。