Manipulando Imagens Color de 24 para 8 bits

Oi preciso manipular uma imagem , preciso ler e passar ela de 24 bits para 8 bits ,m as n~~a estou conseguindo setar o objeto color para 8 bits , tem o construtor Color(int , boolean ) so que esse nao resolve meu problema


 public ManipulandoImagem(String nomeImagem) {


        //referencia a um buffer de uma imagem
        BufferedImage imagem = ImageIO.read(new File(nomeImagem));
        
        int w = imagem.getWidth();

        int h = imagem.getHeight();

        //retorna o rgb da imagem
        int[] pixels = imagem.getRGB(0, 0, w, h, null, 0, w);


        //cria 3 variaveis para armazenar as cores rgb de cada pixel
        double red , green , blue , y;

        //percorre i vetor  pixel e atualiza o seu valor
        for (int col = 0; col < w; col++) {
            for (int lin = 0; lin < h; lin++) {


               red = new Color(pixels[w * lin + col]).getRed() ;
                blue = new Color(pixels[w * lin + col]).getBlue() ;
               green = new Color(pixels[w * lin + col]).getGreen();


// aqui preciso das cores antigas e setar um objeto de Color de 8 bits ou seja em tons de cinza
                pixels[w * lin + col] =
                        new Color((int) red, (int) green, (int) blue).getRGB();
            }
        }


        imagem.setRGB(0, 0, w, h, pixels, 0, w);
      
        //cria uma nova imagem
            ImageIO.write(imagem, "bmp", new File("limaoPBC.bmp"));
        // TODO code application logic here
      

    }
}

Entao a minha duvida e essa , como eu manipulo um objeto Color para representar uma cor de 8 bits …obrigado