Arreglo de Pixeles

De Casiopea

Cada imagen (mapa de bits o bitmap) se almacena en Processing como un objeto PImage que se constituye como una clase. Esta clase tiene atributos de alto y ancho (en este ejemplo denominados img.width e img.height respectivamente). De la multiplicación del alto y ancho se deriva la extensión del arreglo de pixeles; que es unidimensional.

pixels[] = new color[image.width * image.height]

Estos pixeles pueden accesarse con la función get(x,y) y pueden cambiarse asignando un color al pixel con la función set(x, y, color); siendo x e y dos variables de tipo int.

El arreglo de pixeles pixels[] al ser un arreglo unidimensional ofrece métodos especiales para definir un valor expecífico en el sistema de coordenadas cartesiano. El equivalente de set(x, y, #000000) usando el arreglo de pixeles pixels[] es pixels[y*width+x] = #000000.

Para hacer la conversión inversa, es decir, para pasar de un número de pixel a una coordenada (x,y) requiere de una operación diferente:


000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
0000000000000000000000?.........................
................................................
................................................
................................................
................................................
................................................
................................................
................................................
................................................

pixels[i] = #000000; equivaldrá a
set(i - img.width * (i % img.width), i % img.width, #000000);