如何icon.png
使用java获取图像的颜色
实际上我有一个 servlet,我将使用多部分文件传输发送图像,现在服务器应该响应图标文件的颜色,这里图像文件具有单一颜色;
假设您有图像文件的路径:
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);
}
此代码假定图像确实只有一种颜色,并且只提取第一个像素。
循环在那里确保整个图像是一种颜色。当然,有很多方法可以处理这种情况。
您可以循环 BufferedImage(两个循环 - 一个从 0 到宽度,一个从 0 到高度),然后调用 getRgb(x, y)。然后计算每个不同的值。您可以为此使用 Map(键 = 颜色,值 = 出现次数)。请注意,这将为您计算每种颜色在图像中出现的频率。