package com.examp.iugjg; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; import javax.imageio.ImageIO; public class MyClass { public static void main (String [] arg){ int[] rgb = new int[3]; //白色 List<Integer> write=new ArrayList<Integer>(); //灰色 List<Integer> gray=new ArrayList<Integer>(); //深灰色 List<Integer> darkGray=new ArrayList<Integer>(); System.out.println("开始读取图片"); File file =new File("c:\\myPic.jpg"); BufferedImage bi=null; if(null!=file){ try { bi= ImageIO.read(file); } catch (IOException e) { e.printStackTrace(); } int width=bi.getWidth(); int height=bi.getHeight(); int minx=bi.getMinX(); int miny=bi.getMinY(); System.out.println("图片的宽度为:"+width+" 图片的高度为:"+height); for(int i=minx;i<width;i++){ for(int j=miny;j<height;j++){ int pixel=bi.getRGB(i,j); rgb[0] = (pixel & 0xff0000) >> 16; rgb[1] = (pixel & 0xff00) >> 8; rgb[2] = (pixel & 0xff); if(rgb[0]==255){ write.add(pixel); }else if(rgb[0]>=160&&rgb[0]<255){ gray.add(pixel); }else{ darkGray.add(pixel); } if(i==111&&j==55){ System.out.println(rgb[0]); } } } int total=write.size()+gray.size()+darkGray.size(); System.out.println("这张图总共有"+total+"个像素点"); DecimalFormat df=new DecimalFormat("0.00"); float pxWrite=(float)write.size()/total; System.out.println("白色占比"+df.format(pxWrite)); float pxGray=(float)gray.size()/total; System.out.println("灰色占比"+df.format(pxGray)); float pxDarkGray=(float)darkGray.size()/total; System.out.println("深灰色占比"+df.format(pxDarkGray)); float pxDG=(float)gray.size()/darkGray.size(); System.out.println("灰色与深灰色比值"+df.format(pxDG)); }else{ System.out.println("未读取到图片"); } } }