2011-05-06 20 views
11

tengo un mapa de bits que quiero cambiar ciertos píxeles. obtuve los datos del mapa de bits en una matriz, pero ¿cómo establecería un color de píxeles en esa matriz?cómo cambiar el color de ciertos píxeles en el mapa de bits de Android

gracias

int[] pixels = new int[myBitmap.getHeight()*myBitmap.getWidth()]; 
      myBitmap.getPixels(pixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight()); 

      for(int i =0; i<500;i++){ 
       //Log.e(TAG, "pixel"+i +pixels[i]); 

Respuesta

18

Para definir los colores de los píxeles de la matriz de pixels, obtener valores a partir de los métodos estáticos de la clase de Android Color y asignarlos en su matriz. Cuando haya terminado, use setPixels para copiar los píxeles nuevamente en el mapa de bits.

Por ejemplo, para convertir las cinco primeras filas del azul de mapa de bits:

import android.graphics.Color; 

int[] pixels = new int[myBitmap.getHeight()*myBitmap.getWidth()]; 
myBitmap.getPixels(pixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight()); 
for (int i=0; i<myBitmap.getWidth()*5; i++) 
    pixels[i] = Color.BLUE; 
myBitmap.setPixels(pixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight()); 

También puede establecer el color de un píxel en un objeto de mapa de bits uno a la vez sin tener que configurar una memoria intermedia de píxeles con el Método setPixel():

myBitmap.setPixel(x, y, Color.rgb(45, 127, 0)); 
+0

Brilliant gracias mucho – turtleboy

+0

cómo hacer esto para obtener todos los píxeles – Sheychan

Cuestiones relacionadas