第一种自定义算法处理
{
File file = new File("图片路径")
BufferedImage bufferedImage = ImageIO.read(file)
int h = bufferedImage.getHeight()
int w = bufferedImage.getWidth()
int rgb = bufferedImage.getRGB(i, j)
final int r = (rgb >> 16) & 0xff
final int g = (rgb >> 8) & 0xff
final int b = rgb & 0xff
//取平均值
int result=(int)((r+g+b)/3)
BufferedImage grayImage=new BufferedImage(w, h, BufferedImage.TYPE_BYTE_GRAY)
}
第二种使用ColorConvertOp类进行转换
{
BufferedImage bi = ImageIO.read( new File("图片路径"))
BufferedImage bimg =new BufferedImage(bi.getWidth(),bi.getHeight(),BufferedImage.TYPE_BYTE_GRAY)
ColorConvertOp filterObj = new ColorConvertOp(
ColorSpace.getInstance(ColorSpace.CS_GRAY), null)
filterObj.filter(bi, bimg)
}