Diferencia entre revisiones de «Arreglo de Pixeles»

De Casiopea
Sin resumen de edición
Sin resumen de edición
Línea 9: Línea 9:
Para hacer la conversión inversa, es decir, para pasar de un número de pixel a una coordenada <code>(x,y)</code> requiere de una operación diferente:  
Para hacer la conversión inversa, es decir, para pasar de un número de pixel a una coordenada <code>(x,y)</code> requiere de una operación diferente:  


<center>
<pre>
<pre>
<nowiki>
<nowiki>
Línea 20: Línea 21:
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000000000000000000000.........................
0000000000000000000000?.........................
................................................
................................................
................................................
................................................
Línea 31: Línea 32:
</nowiki>
</nowiki>
</pre>
</pre>
</center>


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

Revisión del 12:42 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), i % img.width, #000000);