图片处理-1-灰度处理

136 阅读1分钟

第一种自定义算法处理

{
    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);
}