Diferencia entre revisiones de «Arreglo de Pixeles»

De Casiopea
Sin resumen de edición
Sin resumen de edición
 
Línea 35: Línea 35:


<code>pixels[i] = #000000;</code> equivaldrá a <br />
<code>pixels[i] = #000000;</code> equivaldrá a <br />
<code>set(i - img.width * (i % img.width), i % img.width, #000000);</code>
<code>set(i '''%''' img.width, i '''/''' img.width, #000000);</code>

Revisión actual - 13:08 4 ago 2008

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);