¿Cómo convertir una imagen de escala de grises de 16 bits a una imagen RGB en Java?

Estoy haciendo una aplicación de escritorio en Java Swing usando la plataforma Netbeans. Quiero convertir una imagen en escala de grises de 16 bits en una imagen RGB. ¿Cómo puedo hacer eso?

Respuesta 1

La escala de grises se mantiene en un solo valor, negro, mientras que RBG se mantiene en tres, rojo, azul y verde. Lo mejor que puede hacer con esto es una imagen monocromática, que puede hacer con el getRGB(x, y)método de la BufferedImageclase. Como su imagen de entrada está en escala de grises, puede tomar cualquiera de los tres valores de color de eso porque deberían ser los mismos. Luego use ese valor para cualquier color que elija para ser la base del monocromo.

Aquí hay un ejemplo con rojo:

public BufferedImage changeToRedMonochrome(BufferedImage grayImage)
{
    int width = grayImage.getWidth();
    int height = grayImage.getHeight()

    BufferedImage redImage = new BufferedImage(
        width, height, BufferedImage.TYPE_INT_RGB);

    for (int y=0; y<height; y++)
    {
        for (int x=0; x<width; x++)
        {
            Color grayColor = new Color(grayImage.getRGB);
            int gray = grayColor.getRed();

            int red = (gray > 127) ? 255 : gray/2;
            int blue = (gray > 127 ? gray/2 : 0;
            int green = (gray > 127 ? gray/2 : 0;

            Color redColor = new Color(red, blue, green);
            redImage.setRGB(x, y, redColor);
        }
    }
}

No es un código perfecto y, por supuesto, necesitaría ajustarlo para que se ajuste a sus necesidades específicas, pero esta es una forma de hacer una imagen monocromática.

Respuesta: 2

Estoy siguiendo este tutorial sobre cómo configurar Corba, pero no puedo usar los paquetes de los que están hablando, y en ningún lugar de Internet puedo dar una explicación adecuada de cómo obtenerlos. Quiero el ...

Tengo un archivo XML existente y solo quiero agregar la etiqueta en la primera línea de ese archivo XML y la última línea de ese archivo que solo quiero agregar. Cómo puedo conseguir esto. Entrada de muestra: 1. 2. <suite> 3 ....

Esta puede ser una pregunta estúpida, pero estoy bastante frustrado y quiero asegurarme: estoy escribiendo una herramienta, que tiene que tener una GUI realmente agradable (gradientes, colores, colores redondeados, información sobre herramientas personalizada ...) Es. ..

Tengo una API de descanso donde el punto final es así: / private / items / query donde estoy tomando id como parámetro de consulta, por lo que url es como: http: // localhost: 8081 / private / items / query? Id = item1234 Ahora cuando el ...