Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - Rop

Páginas: [1]
1
Amigos: Para un proyecto de la universidad debo leer los siguientes datos de una imagen BMP:

* Ancho
* Alto
* Matriz de pixeles
* Rojo, Verde y Azul de cada pixel

Estas acciones debo poder realizarlas sin utilizar las clases: java.awt.Image (que incluye clases como BufferedImage), javax.imageIO, o la clase imageIO, por restricciones del proyecto no puedo utilizar estas clases.

He investigado y todas las formas que encuentro para hacer lo que necesito es utilizando las clases que tengo restringidas para este proyecto.

Alguno de ustedes me puede ayudar con esto?

Este es el código que tengo para leer byte por byte, pero tengo idea de como llegar a los bytes que tienen la información de los pixeles y sus colores RGB, una vez pueda obtener los colores RGB, lo que tengo que hacer es construir tres imágenes a partir de la imagen original, una formando pixeles con el valor en rojo encontrado en cada pixel, y cero en verde y azúl; lo mismo para crear una imagen solo de verde y otra solo de azúl.

Pero no se como encontrar el RGB leyendo cada byte.  Ya leí este artículo https://es.m.wikipedia.org/wiki/Windows_bitmap para ver el formato de un BMP, pero la verdad ya no sé como continuar.

Este es el código que llevo hasta el momento:

Código: [Seleccionar]
public void Build() {
        int contador=0;
        int aa = 0;

        try{
            FileInputStream archivo = new FileInputStream(mFile);
            BufferedInputStream buff = new BufferedInputStream(archivo);
            DataInputStream datos = new DataInputStream(buff);
            try{
                while (true){
                    for (int ii = 0; ii <= 17; ii++){
byte jj = datos.readByte();                   
                    }

                    int mAncho = datos.readInt();
                    int mAlto = datos.readInt();

                    if (aa == 0){
                    System.out.println("Ancho: " + mAncho + " - Alto: " + mAlto);
                    aa = 1;
                    }

/*                    System.out.printf("%d - %02X - %03d \n", contador++, in, in & 0xFF);
                    System.out.println(in);
                    Color color = new Color(in);

                    int red = color.getRed();
int green = color.getGreen();
int blue = color.getBlue();
int rgb = color.getRGB();

                    System.out.println("Rojo: " + red + " - Verde: " + green + " - Azul: " + blue + " - RGB: " + rgb);*/
            }
        }catch(EOFException eof){
                buff.close();
        }
        }catch(IOException e){
                System.out.println("Error  " + e.toString());
      }
}

De antemano agradezco todos los comentarios.

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".