如何圖像的顏色使用Java獲取使用Java
以獲取圖像icon.png
的顏色其實我對我無線本地環路使用多文件傳輸來發送圖像一個servlet, 現在服務器應該回響應圖標文件的顏色, 這裏圖像文件具有單一顏色;
如何圖像的顏色使用Java獲取使用Java
以獲取圖像icon.png
的顏色其實我對我無線本地環路使用多文件傳輸來發送圖像一個servlet, 現在服務器應該回響應圖標文件的顏色, 這裏圖像文件具有單一顏色;
您可以循環BufferedImage(兩個循環 - 一個從0到寬度,一個從0到高度),並獲得調用getRgb(x,y)。然後計算每個不同的值。您可以使用一個地圖(鍵=顏色,值=發生次數)。請注意,這會給你計算圖像中每種顏色的頻率。
假設你已經在路徑的圖像文件:
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);
}
此代碼假定圖像確實只有一個顏色,僅拉動第一像素。
循環是爲了確保整個圖像是一種顏色。當然,處理這種情況有很多種方法。
你是什麼意思的「單一顏色」的圖像文件?除非它是一個像素的圖像,否則有多種顏色。 – Vulcan 2013-05-02 21:30:35
@Vulcan單色表示所有像素都具有相同的顏色。 – 2013-05-02 21:32:22