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:
Fácil no 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;
}
{
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;
}

Nuestra función para dejar solo el canal verde seria lo mismo solo cambiaremos lo que contendrá los for's:
Cita:
De la misma forma para el canal azul:int g = (pix[index] >> 8) & 0xff;
pix[index] = 0xff000000 | (0 << 16) | (g << 8) | 0;
pix[index] = 0xff000000 | (0 << 16) | (g << 8) | 0;
Cita:
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.int b = pix[index] & 0xff;
pix[index] = 0xff000000 | (0 << 16) | (0 << 8) | b;
pix[index] = 0xff000000 | (0 << 16) | (0 << 8) | b;

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
