Arreglo de Pixeles
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, #000000);