2012-09-28 19 views
7

Tengo un objeto Canvas al inicio. Necesito cambiar el color de algunos píxeles dependiendo de su color actual. ¿Cómo puedo hacer eso de una manera adecuada?Lienzo de Android cambiar algunos píxeles de color

Detalles:

tengo mi propia clase se extendió desde ImageView. En el método onDraw(Canvas canvas) dibujo algo con una clase de terceros y tengo solo el objeto Canvas con el resultado. Después de eso, necesito cambiar el color de algunos píxeles dependiendo de su color actual.

+0

Tendría que recorrer cada píxel, obtener su color actual y establecer su nuevo color. – user1706950

+0

Lo sé, ¿y cómo? :) Para dibujar, puedo usar 'canvas.drawPoint (x, y, paint)', pero ¿cómo obtener el color del píxel? –

+0

Y por cierto, necesito la solución adecuada, me refiero a la eficiencia y el más rápido. –

Respuesta

3

Suponiendo que usted ha android.graphics.Canvas objeto llamado canvas y X & Y son puntos en los que desee cambiar píxel, por lo que aquí tienes

Llamar:

canvas.drawPoint(X, Y, paint); 

Aquí es cómo inicializar objeto de la clase android.graphics.Paint es decir, pintura

Paint paint = new Paint(); 
paint.setStyle(Paint.Style.FILL); 
paint.setColor(Color.WHITE); 

Busque más en este Link para cambiar varios píxeles en diferentes posiciones, hay muchas funciones que le ayudarán a lograr lo que desea. Mejor suerte :-)

+0

No, la situación es diferente. No sé X, Y. Puedo detectar coordenadas solo por el color de píxel actual. Por ej. si algún píxel es verde, píntelo de azul. –

1

Probablemente haya una docena de formas de hacerlo. Si desea hacer el enfoque Canvas, hay una forma de dibujar a un objeto Bitmap. Luego puede dibujar el objeto a otro lienzo. El objeto Bitmap también puede tener funciones para modificar píxeles.

Bitmap también le permite obtener una copia en un búfer, y si sabe cómo se almacenan los píxeles, esa sería una forma muy rápida de manipulación de imágenes. No estoy seguro de si Canvas tiene ese

Cuestiones relacionadas