{"id":933,"date":"2014-08-31T22:30:12","date_gmt":"2014-08-31T22:30:12","guid":{"rendered":"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/?page_id=933"},"modified":"2014-10-05T00:25:06","modified_gmt":"2014-10-05T00:25:06","slug":"c4","status":"publish","type":"page","link":"https:\/\/clases.etab.cl\/?page_id=933","title":{"rendered":"C4 &#8211; OT 2014"},"content":{"rendered":"<p><strong>Ejercicio para la pr\u00f3xima semana:<\/strong> Subir al blog un sketch + imagen realizado con todos o algunos de los contenidos que se ver\u00e1n a continuaci\u00f3n. Se pueden combinar con lo visto anteriormente.<\/p>\n<p><strong>Carga y edici\u00f3n de im\u00e1genes bitmap en Processing<\/strong><\/p>\n<p>En la primera clase en que usamos Processing, utilizamos la funci\u00f3n <strong><a href=\"http:\/\/processing.org\/reference\/loadImage_.html\" target=\"_blank\">loadImage()<\/a><\/strong> que cargaba una imagen jpg dentro de una variable del tipo <strong><a href=\"http:\/\/processing.org\/reference\/PImage.html\" target=\"_blank\">PImage<\/a><\/strong><strong><\/strong>.   PImage es entonces un tipo de dato como lo es int (para almacenar enteros), float (para almacenar decimales), boolean (para almacenar los valores verdadero o falso), char (para almacenar caracteres alfanum\u00e9ricos), etc. <strong>PImage<\/strong> es un tipo de dato para almacenar im\u00e1genes.<\/p>\n<p>En esta sesi\u00f3n, se profundizar\u00e1 un poco m\u00e1s en el uso de este tipo de variable y la manipulaci\u00f3n de im\u00e1genes bitmap (o raster).<\/p>\n<p>Como ya se sabe, la imagen digital est\u00e1 compuesta por pixeles. Si una imagen es de 1280 x 1024 pixeles, tendr\u00e1 entonces un total de 1.310.720 pixeles, es decir, 1,3 Megapixeles.<\/p>\n<p>Otro aspecto importante de una imagen digital es la profundidad de color (color depth). Si la profundidad de color de una imagen es de 1bit, cada pixel puede tener el valor de 1 \u00f3 de 0, normalmente esto representa a blanco o negro. Si la profundidad de color es 4, cada pixel puede tener uno de 16 valores. Si la PdC es de 8 bits, entonces el pixel puede tener uno de 256 valores.<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/test_img2_diffrentBits_good.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-310 aligncenter\" alt=\"test_img2_diffrentBits_good\" src=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/test_img2_diffrentBits_good.jpg\" width=\"558\" height=\"216\" srcset=\"https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/test_img2_diffrentBits_good.jpg 558w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/test_img2_diffrentBits_good-300x116.jpg 300w\" sizes=\"auto, (max-width: 558px) 100vw, 558px\" \/><\/a><\/p>\n<p>Cuando se habla de una imagen de 24 bits, normalmente se est\u00e1 hablando de una imagen que tiene 8 bits en el canal rojo, 8bits en el verde y 8 bits en el azul (imagen RGB). Esto da como resultado 24 bits en total. M\u00e1s informaci\u00f3n acerca de espacios de color y profundidad de color:<br \/>\n<a href=\"http:\/\/en.wikipedia.org\/wiki\/Color_depth\" target=\"_blank\">http:\/\/en.wikipedia.org\/wiki\/Color_depth<\/a><br \/>\n<a href=\"http:\/\/es.wikipedia.org\/wiki\/Profundidad_de_color\" target=\"_blank\">http:\/\/es.wikipedia.org\/wiki\/Profundidad_de_color<\/a><br \/>\n<a href=\"http:\/\/www.cambridgeincolour.com\/tutorials\/bit-depth.htm\" target=\"_blank\">http:\/\/www.cambridgeincolour.com\/tutorials\/bit-depth.htm<\/a><br \/>\n<a href=\"http:\/\/www.cambridgeincolour.com\/tutorials\/digital-camera-pixel.htm\" target=\"_blank\">http:\/\/www.cambridgeincolour.com\/tutorials\/digital-camera-pixel.htm<\/a><br \/>\n<a href=\"http:\/\/en.wikipedia.org\/wiki\/Pixel\" target=\"_blank\">http:\/\/en.wikipedia.org\/wiki\/Pixel<\/a><br \/>\n<a href=\"http:\/\/es.wikipedia.org\/wiki\/P%C3%ADxel\" target=\"_blank\">http:\/\/es.wikipedia.org\/wiki\/P%C3%ADxel<\/a><\/p>\n<p>Al trabajar con im\u00e1genes bitmap en Processing, recuerda que el archivo de imagen debe estar localizado en una carpeta con el nombre &#8220;data&#8221; dentro de la carpeta del Sketch que la est\u00e9 llamando.<br \/>\nTambi\u00e9n es importante recordar que el archivo de la imagen puede ser importado a trav\u00e9s del men\u00fa &#8220;Sketch&#8221; &#8211;&gt; &#8220;Add File&#8221;. De esta manera, el archivo de imagen quedar\u00e1 localizado donde corresponde para ser llamado por la variable del tipo PImage de tu sketch.<\/p>\n<p>Las extensiones de archivo de imagen aceptados por Processing son:<br \/>\n&#8211; <strong>jpg<\/strong> <span style=\"color: #888888;\">(profundidad de color soportada: hasta 24bits, no soporta transparencia)<\/span><br \/>\n&#8211; <strong>gif<\/strong> <span style=\"color: #888888;\">(profundidad de color soportada: hasta 8bits con transparencia de 1bit)<\/span><br \/>\n&#8211; <strong>png<\/strong> <span style=\"color: #888888;\">(profundidad de color soportada: hasta 24bits, con transparencia de 8bits)<\/span><br \/>\nRecuerda optimizar la imagen en cuanto a su tama\u00f1o y resoluci\u00f3n antes de usarla en Processing. De esta forma, no se estar\u00e1 sobre exigiendo al procesador.<\/p>\n<p>Otra funci\u00f3n que se utiliza al trabajar con im\u00e1genes bitmap, es <a href=\"http:\/\/processing.org\/reference\/image_.html\" target=\"_blank\"><strong>image()<\/strong><\/a>, gracias a esta, la imagen se visualiza.<\/p>\n<p>Tenemos entonces, por ahora, tres elementos importantes al momento de usar im\u00e1genes bitmap en Processing:<\/p>\n<p><strong>PImage:<\/strong> Tipo de dato para cargar im\u00e1genes en el programa<br \/>\n<strong>loadImage():<\/strong> Funci\u00f3n que carga la imagen en una variable del tipo PImage. El par\u00e1metro que va dentro de loadImage es el nombre del archivo que est\u00e1 cargando. \u00c9ste debe ser ex\u00e1ctamente igual, cuidando las may\u00fasculas, min\u00fasculas y espacios entre caracteres.<br \/>\n<strong>image():<\/strong> Funci\u00f3n que expone (display) la imagen, la hace visible. Los par\u00e1metros que van dentro de image(), son el nombre de la variable, la ubicaci\u00f3n x y la ubicaci\u00f3n y. Tambi\u00e9n se puede agregar a continuaci\u00f3n el ancho y el alto, pudiendo modificar las dimensiones de la imagen original.<\/p>\n<p>Quedar\u00e1 la estructura b\u00e1sica as\u00ed:<\/p>\n<p><script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/anonymous\/9cd3cf5428e7c58a1755.js\"><\/script>Luego un ejemplo de carga de imagen que cambia su tama\u00f1o seg\u00fan la posici\u00f3n del mouse:<script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/anonymous\/95a3fca934e49962a46d.js\"><\/script><\/p>\n<p><strong>tint() y noTint()<\/strong><br \/>\nA trav\u00e9s de la funci\u00f3n <a href=\"http:\/\/processing.org\/reference\/tint_.html\" target=\"_blank\">tint()<\/a>; se puede cambiar el color de los pixeles en una imagen. Para hacer que una l\u00ednea o bloque no sea afectado por tint, se debe escribir noTint();<br \/>\nEn el siguiente ejemplo se puede ver la comparaci\u00f3n entre dos im\u00e1genes, una con tint y la otra sin.<\/p>\n<p><script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/anonymous\/b5441bf5c54abe9ee559.js\"><\/script>Para dar transparencia a una imagen sin cambiar el color, habr\u00e1 que ajustar el primer par\u00e1metro de tint() a 255 que corresponder\u00eda a blanco en el modo de color por defecto de Processing y el segundo par\u00e1metro ajustar\u00e1 el valor del canal alfa o transparencia.<script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/anonymous\/1d09eaa1208793632329.js\"><\/script><br \/>\nA continuaci\u00f3n un ejemplo que combina el uso de la funci\u00f3n tint() para cambiar la transparencia de la imagen y la repetici\u00f3n de esa imagen por medio de un &#8216;ciclo for&#8217;.<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-17-at-8.30.58-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-333\" alt=\"Screen Shot 2013-09-17 at 8.30.58 PM\" src=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-17-at-8.30.58-PM-300x300.png\" width=\"397\" height=\"394\" \/><\/a><\/p>\n<p style=\"text-align: left;\"><script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/anonymous\/fa2fb065ff63a2300420.js\"><\/script>    C\u00f3mo se mencion\u00f3 antes, las im\u00e1genes png y gif pueden guardar transparencia, por lo que si se carga una imagen con estas caracter\u00edsticas en Processing, la transparencia ser\u00e1 respetada: <a href=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-17-at-8.28.20-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-330 aligncenter\" alt=\"Screen Shot 2013-09-17 at 8.28.20 PM\" src=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-17-at-8.28.20-PM.png\" width=\"397\" height=\"394\" srcset=\"https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-17-at-8.28.20-PM.png 496w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-17-at-8.28.20-PM-150x150.png 150w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-17-at-8.28.20-PM-300x298.png 300w\" sizes=\"auto, (max-width: 397px) 100vw, 397px\" \/><\/a><script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/anonymous\/2f002bb8eab6d13ca829.js\"><\/script><\/p>\n<p><strong>get() y set()<\/strong><br \/>\nCuando un programa de Processing se inicia, la ventana se abre al tama\u00f1o requerido en size(). El programa gana control sobre el \u00e1rea de pantalla y ajusta cada valor de color para cada pixel.<br \/>\nLa funci\u00f3n get() puede leer el color de cada pixel en la ventana de display. Puede tambi\u00e9n tomar como referencia la ventana completa o una porci\u00f3n de esta. Existen tres versiones de esta versi\u00f3n:<\/p>\n<p>get()<br \/>\nget(x,y)<br \/>\nget(x, y, width, height)<\/p>\n<p>En el siguiente ejemplo s\u00f3lo se usa get() sin par\u00e1metros. Esto hace que se haga una copia en la memoria de la ventana de visualizaci\u00f3n completa, como cuando uno hace un pantallazo (ImprPant) de la ventana del computador en Windows.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\"><script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/loadix\/86f7d9b2684c2dfb3696.js\"><\/script>    Podemos repetir este mismo sketch, pero con una imagen jpg:<a href=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-19-at-2.50.28-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-341\" alt=\"Screen Shot 2013-09-19 at 2.50.28 PM\" src=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-19-at-2.50.28-PM-297x300.png\" width=\"397\" height=\"400\" srcset=\"https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-19-at-2.50.28-PM-297x300.png 297w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-19-at-2.50.28-PM-150x150.png 150w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-19-at-2.50.28-PM.png 493w\" sizes=\"auto, (max-width: 397px) 100vw, 397px\" \/><\/a><script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/loadix\/bdbb353402aeed2e7953.js\"><\/script><\/p>\n<p>&nbsp;<br \/>\n<strong>A continuaci\u00f3n un sketch en donde se toma el color de un pixel espec\u00edfico de la imagen bitmap cargada. En el ejemplo que se muestra a continuaci\u00f3n, el cuadrado que aparece en la esquina superior izquierda, contiene el color del pixel ubicado en las coordenadas x=20 e y=30.<\/strong><br \/>\n<a href=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-12.51.28-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-351\" alt=\"Screen Shot 2013-09-22 at 12.51.28 AM\" src=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-12.51.28-AM-300x300.png\" width=\"300\" height=\"300\" srcset=\"https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-12.51.28-AM-300x300.png 300w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-12.51.28-AM-150x150.png 150w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-12.51.28-AM.png 497w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n<script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/anonymous\/623bfc335a9e5f04798f.js\"><\/script><\/p>\n<p>&nbsp;<br \/>\nOtro ejemplo que agrega interactividad al ejemplo anterior, es rellenar con el color en donde est\u00e9 ubicado el puntero del mouse. Esto es a trav\u00e9s de mouseX() y mouseY():<br \/>\n<a href=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.14-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-358\" alt=\"Screen Shot 2013-09-22 at 1.14.14 AM\" src=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.14-AM-300x153.png\" width=\"300\" height=\"153\" srcset=\"https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.14-AM-300x153.png 300w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.14-AM-624x319.png 624w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.14-AM.png 936w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.09-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-357\" alt=\"Screen Shot 2013-09-22 at 1.14.09 AM\" src=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.09-AM-300x153.png\" width=\"300\" height=\"153\" srcset=\"https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.09-AM-300x153.png 300w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.09-AM-624x319.png 624w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.09-AM.png 936w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.05-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-356\" alt=\"Screen Shot 2013-09-22 at 1.14.05 AM\" src=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.05-AM-300x153.png\" width=\"300\" height=\"153\" srcset=\"https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.05-AM-300x153.png 300w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.05-AM-624x319.png 624w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.05-AM.png 936w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a> <a href=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.01-AM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-355\" alt=\"Screen Shot 2013-09-22 at 1.14.01 AM\" src=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.01-AM-300x153.png\" width=\"300\" height=\"153\" srcset=\"https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.01-AM-300x153.png 300w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.01-AM-624x319.png 624w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-1.14.01-AM.png 936w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p><\/a><script type=\"text\/javascript\" src=\"https:\/\/gist.github.com\/anonymous\/6a8d87bd04ad47d1ccd3.js\"><\/script><br \/>\n&nbsp;<\/p>\n<p><strong>Podemos tambi\u00e9n integrar la lectura de pixeles con un ciclo for. En el ejemplo a continuaci\u00f3n, se est\u00e1 tomando la l\u00ednea de pixeles en base a la ubicaci\u00f3n de mouseY. Se agreg\u00f3 adem\u00e1s la funci\u00f3n constrain() que posibilita restringir la cantidad de valores de muestra en el eje &#8220;y&#8221; que tomar\u00e1 mouseY. Tambi\u00e9n aparece en este sketch el tipo de dato &#8220;color&#8221;.<\/strong><br \/>\n<a href=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-11.14.36-AM.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/etab.cl\/clases\/uchile\/obj-tec\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-11.14.36-AM.png\" alt=\"Screen Shot 2013-09-22 at 11.14.36 AM\" width=\"497\" height=\"498\" class=\"aligncenter size-full wp-image-363\" srcset=\"https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-11.14.36-AM.png 497w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-11.14.36-AM-150x150.png 150w, https:\/\/clases.etab.cl\/wp-content\/uploads\/2013\/09\/Screen-Shot-2013-09-22-at-11.14.36-AM-300x300.png 300w\" sizes=\"auto, (max-width: 497px) 100vw, 497px\" \/><\/a><\/p>\n<p><script src=\"https:\/\/gist.github.com\/anonymous\/440944a838dde45ab5f5.js\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio para la pr\u00f3xima semana: Subir al blog un sketch + imagen realizado con todos o algunos de los contenidos que se ver\u00e1n a continuaci\u00f3n. Se pueden combinar con lo visto anteriormente. Carga y edici\u00f3n de im\u00e1genes bitmap en Processing En la primera clase en que usamos Processing, utilizamos la funci\u00f3n loadImage() que cargaba una [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":792,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-933","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/clases.etab.cl\/index.php?rest_route=\/wp\/v2\/pages\/933","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/clases.etab.cl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/clases.etab.cl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/clases.etab.cl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/clases.etab.cl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=933"}],"version-history":[{"count":4,"href":"https:\/\/clases.etab.cl\/index.php?rest_route=\/wp\/v2\/pages\/933\/revisions"}],"predecessor-version":[{"id":996,"href":"https:\/\/clases.etab.cl\/index.php?rest_route=\/wp\/v2\/pages\/933\/revisions\/996"}],"up":[{"embeddable":true,"href":"https:\/\/clases.etab.cl\/index.php?rest_route=\/wp\/v2\/pages\/792"}],"wp:attachment":[{"href":"https:\/\/clases.etab.cl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}