Foros del Web » Programando para Internet » Android »

Procesamiento de imágenes en android (2da Parte)

Estas en el tema de Procesamiento de imágenes en android (2da Parte) en el foro de Android en Foros del Web. Saludos de nuevo gente, pues aquí haciendo mi aparición semanal o casual podríamos decirlo. Hoy les mostrare como hacer cosas nuevas a nuestras imágenes como ...
  #1 (permalink)  
Antiguo 05/08/2011, 20:25
Avatar de zero_master  
Fecha de Ingreso: junio-2011
Ubicación: Leon, Gto
Mensajes: 290
Antigüedad: 13 años, 4 meses
Puntos: 74
Procesamiento de imágenes en android (2da Parte)

Saludos de nuevo gente, pues aquí haciendo mi aparición semanal o casual podríamos decirlo.

Hoy les mostrare como hacer cosas nuevas a nuestras imágenes como en el proyecto del tema
http://www.forosdelweb.com/f165/proc...ndroid-933993/

donde convertíamos una imagen RGB en escala de grises, pues ahora podemos irle agregando cosas nuevas a ese proyecto y a su vez creando menús que nos facilitaran el procesamiento de la imagen esto pueden encontrarlo en el tema de http://www.forosdelweb.com/f165/hey-...comida-928526/

Bueno empecemos.

El día de hoy agregaremos una sección o submenu de procesamiento de imágenes donde podremos seleccionar si queremos solo ver nuestra imagen con el canal rojo activo y verde-azul desactivados, también las diferentes combinaciones posibles con estos 3 conjuntos.

Esto que quiere decir, como mencionamos anteriormente trataremos a las imágenes como si fueran matrices que dependerá sus dimensiones según el tamaño de nuestra imagen; ademas de repetirse 3 veces en el espacio donde cada una sera un canal R, G y B.

Tomando esto podemos hacer que los canales RB desaparezcan por así decirlo, pero en si los dejaremos transparentes y la forma de hacer eso es dejarlos con valores en 0. Ok empecemos a programar

Nuestras librerías importadas son las mismas a menos que quieran hacer menús ya tendrán que agregarle algunas si no pues sigamos. Nuestro código para la petición de la imagen y los valores de los pixeles son los mismos lo único que cambiaremos o agregaremos sera una nueva función, que de igual forma podemos mandarlo a llamar en nuestro evento del boton presionado o en los case de los menús.

Nuestra función para dejar solo el canal rojo seria algo como esto:
Cita:
private int[] ChannelRed(Bitmap mBitmap)
{
int picw, pich;
picw = mBitmap.getWidth();
pich = mBitmap.getHeight();
int[] pix = new int[picw * pich];
mBitmap.getPixels(pix, 0, picw, 0, 0, picw, pich);
for (int y = 0; y < pich; y++)
for (int x = 0; x < picw; x++)
{
int index = y * picw + x;
int r = (pix[index] >> 16) & 0xff;
pix[index] = 0xff000000 | (r << 16) | (0 << 8) | 0;
}
return pix;
}
Fácil no ; bueno que nos dice el código, para iniciar le mandamos el Bitmap que queremos tratar, le leemos sus dimensiones y le sacamos sus valores en pixel, en nuestros 2 for's tratamos esos valores de pixeles para sacar su valor en el canal rojo y los volvemos a agregar en la variable pix, pero a diferencia de que donde deberían ir los valores para el canal G y B agregaremos puros 0's.

Nuestra función para dejar solo el canal verde seria lo mismo solo cambiaremos lo que contendrá los for's:
Cita:
int g = (pix[index] >> 8) & 0xff;
pix[index] = 0xff000000 | (0 << 16) | (g << 8) | 0;
De la misma forma para el canal azul:
Cita:
int b = pix[index] & 0xff;
pix[index] = 0xff000000 | (0 << 16) | (0 << 8) | b;
Y como siempre les dejo las imágenes con los resultados. Para este caso agregue una imagen donde tuviera diferentes colores para ver el efecto.


Aquí les despliego el menú que agregue a mi proyecto

Seleccionamos la opción de Canal y nos sale un submenu

Y las imágenes con su respectivo canal activo




Bueno eso es todo espero les sirva, ahorita voy a empezar a hacer una nueva donde mostraremos la imagen invertida que son uno de los efectos que a varios les gusta cya later

Última edición por cvander; 16/08/2011 a las 01:53
  #2 (permalink)  
Antiguo 15/08/2011, 09:39
Avatar de Debi
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: Buenos Aires
Mensajes: 275
Antigüedad: 15 años, 7 meses
Puntos: 178
Respuesta: Procesamiento de imágenes en android (2da Parte)

Felicitaciones, tienes uno de los temas más votados de este subforo. Muy buenos aportes!
__________________
@Acila
  #3 (permalink)  
Antiguo 15/08/2011, 15:14
Avatar de zero_master  
Fecha de Ingreso: junio-2011
Ubicación: Leon, Gto
Mensajes: 290
Antigüedad: 13 años, 4 meses
Puntos: 74
Respuesta: Procesamiento de imágenes en android (2da Parte)

Muchas gracias, aunque me gustaría mas interacción con las personas que lo leen y usan mi código. No hace daño mejorar con las criticas de los demás.

Etiquetas: rgb, todo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 7 personas




La zona horaria es GMT -6. Ahora son las 12:22.