public void getBaseColor(){
//获取Image图像
String fileName = "D:/LYM/temp/color.jpg";
Image image = null;
try {
image = ImageIO.read(new FileInputStream(fileName));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if(image != null){
int iw = image.getWidth(null);
int ih = image.getHeight(null);
int size = iw * ih;
int[] pixels = new int[size];
//创建一个 PixelGrabber 对象,以从指定图像将像素抓取到给定的数组pixels中
PixelGrabber pg = new PixelGrabber(image.getSource(), 0, 0, iw, ih, pixels, 0, iw);
try {
pg.grabPixels();
} catch (InterruptedException e) {
e.printStackTrace();
}
//获取每一像素上的三原色叠加
ColorModel cm = ColorModel.getRGBdefault();
int red = 0, green = 0, blue = 0;
for (int i = 0; i < size; i++) {
red += cm.getRed(pixels[i]);
green += cm.getGreen(pixels[i]);
blue += cm.getBlue(pixels[i]);
}
//计算平均三原色
red = red / size;
green = green / size;
blue = blue / size;
System.out.println("rgb(" + red + "," + green + "," + blue + ")");
}
}
输出 rgb(68,73,78)