<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Descargas Archivos | Develooping</title>
	<atom:link href="https://www.develooping.com/etiqueta/descargas/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.develooping.com/etiqueta/descargas/</link>
	<description>Web design and programming</description>
	<lastBuildDate>Sat, 10 Oct 2020 20:11:41 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Red iralámbrica</title>
		<link>https://www.develooping.com/red-iralambrica/</link>
		
		<dc:creator><![CDATA[develooping]]></dc:creator>
		<pubDate>Sat, 10 Oct 2020 20:11:41 +0000</pubDate>
				<category><![CDATA[Fake News]]></category>
		<category><![CDATA[Redes Sociales]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Descargas]]></category>
		<category><![CDATA[Opinión]]></category>
		<guid isPermaLink="false">https://www.develooping.com/?p=7402</guid>

					<description><![CDATA[<p>La entrada <a href="https://www.develooping.com/red-iralambrica/">Red iralámbrica</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>La entrada <a href="https://www.develooping.com/red-iralambrica/">Red iralámbrica</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Supermán sucumbe al poder de la Cristonita</title>
		<link>https://www.develooping.com/superman-sucumbe-al-poder-la-cristonita/</link>
		
		<dc:creator><![CDATA[develooping]]></dc:creator>
		<pubDate>Fri, 15 Sep 2017 17:16:35 +0000</pubDate>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Descargas]]></category>
		<category><![CDATA[Diseño Gráfico]]></category>
		<guid isPermaLink="false">http://www.develooping.com/?p=3090</guid>

					<description><![CDATA[<p>Como Supermán no necesita dormir, aprovechó toda la noche para coser los botones de sus camisas. Esa costumbre de abrírselas a tirones a la menor señal de alarma estaba acabando con su fondo de armario.</p>
<p>Las noches tan tranquilas cómo ésta, sin crisis mundiales, ni ataques de monstruos ni invasiones extraterrestres le ponían de los nervios. Nada como tener que concentrarte en un gran problema ajeno para evitar enfrentarte a los propios. Después de que sus padres le hicieran huir de Kriptón para salvar su vida, Supermán nunca había dejado de huir de sí mismo.</p>
<p>La entrada <a href="https://www.develooping.com/superman-sucumbe-al-poder-la-cristonita/">Supermán sucumbe al poder de la Cristonita</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p><em>Como Supermán no necesita dormir, aprovechó toda la noche para coser los botones de sus camisas. Esa costumbre de abrírselas a tirones a la menor señal de alarma estaba acabando con su fondo de armario.</em></p>
<p><em>Las noches tan tranquilas cómo ésta, sin crisis mundiales, ni ataques de monstruos ni invasiones extraterrestres le ponían de los nervios. Nada como tener que concentrarte en un gran problema ajeno para evitar enfrentarte a los propios. Después de que sus padres le hicieran huir de Kriptón para salvar su vida, Supermán jamás había dejado de huir de sí mismo.</em></p>
<p><em>Pese a que hubo un tiempo en que lo creyó, nunca pudo ser un verdadero modelo para la gente. ¿Quién podía aspirar siquiera a parecérsele? La admiración del pueblo, los vítores y aplausos no hicieron más que subrayar su diferencia. Se sentía, con razón, un inadaptado incapaz de integrarse realmente en la sociedad.</em></p>
<p><em>Su personalidad de Clark Kent era solo un engaño, una impostura más en su mundo de falsedades. El gran defensor de la verdad y la justicia había basado toda su vida en una mentira, y las noches como esa servían para recordárselo.</em></p>
<p><em>Absorto como estaba en la costura y sus pensamientos, apenas prestaba atención al telepredicador que gritaba desde la pantalla de un televisor que solo usaba para producir algo de ruido que le ayudara a acallar su mente. ¿Quién podía sospechar que el gran héroe pasaba sus noches de descanso cosiendo y viendo la tele?</em></p>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img fetchpriority="high" decoding="async" width="360" height="509" src="https://www.develooping.com/wp-content/uploads/2017/09/superman-cristonita-portada.jpg" class="vc_single_image-img attachment-full" alt="portada supermán contra la cristonita" title="superman-cristonita-portada" srcset="https://www.develooping.com/wp-content/uploads/2017/09/superman-cristonita-portada.jpg 360w, https://www.develooping.com/wp-content/uploads/2017/09/superman-cristonita-portada-212x300.jpg 212w" sizes="(max-width: 360px) 100vw, 360px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<div style="text-align: center;"><a class="qbutton" href="/wp-content/uploads/2017/09/cristonita.pdf">Descargar</a></div>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p><strong>Así comienza la historia del hijo de Kriptón que jamás te contarán</strong>.</p>
<p>Del guionista Salvador Script, creador de las aclamadas &#8220;<em>Spiderman se pierde en las redes sociales</em>&#8221; y &#8220;<em>Donald Trump makes Captain America great again</em>&#8221; y el dibujante Paco Pencil, autor de las magníficas &#8220;<em>Venga Dora, hazte Vengadora</em>&#8221; y &#8220;<em>Batman usa al Joker para hacer un trío</em>&#8220;, nos llega una obra única y desconcertante.</p>
<p>El crossover definitivo… una lucha sin cuartel que nos muestra que los seres más poderosos pueden ser también los más atormentados. Un comic que jamás encontrarás en ningún lugar, así que para que se te haga más leve te regalamos la portada, que <strong>podrás bajar como PDF vectorial solo pulsando el botoncito &#8220;Descargar&#8221;</strong>.</p>
<p><strong>¡Eso si que es poder!</strong></p>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div>
</div><p>La entrada <a href="https://www.develooping.com/superman-sucumbe-al-poder-la-cristonita/">Supermán sucumbe al poder de la Cristonita</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>A veces pienso</title>
		<link>https://www.develooping.com/a-veces-pienso/</link>
		
		<dc:creator><![CDATA[develooping]]></dc:creator>
		<pubDate>Tue, 05 Sep 2017 11:22:17 +0000</pubDate>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Descargas]]></category>
		<category><![CDATA[Diseño Gráfico]]></category>
		<guid isPermaLink="false">http://www.develooping.com/?p=3042</guid>

					<description><![CDATA[<p>Si quieres ser creativo aparca el ordenador, olvídate del móvil y coge papel y lápiz. No hay mayor enemigo de la creatividad que el ruido continuo al que nos someten las nuevas tecnologías. He visto cometer miles de veces el error de sustituir la introspección necesaria para el proceso creativo por consultas a internet.</p>
<p>La entrada <a href="https://www.develooping.com/a-veces-pienso/">A veces pienso</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p><strong>Si quieres ser creativo aparca el ordenador, olvídate del móvil y coge papel y lápiz. No hay mayor enemigo de la creatividad que el ruido continuo al que nos someten las nuevas tecnologías.</strong> He visto cometer miles de veces el error de sustituir la <span data-dobid="hdw">introspección</span> necesaria para el proceso creativo por consultas a internet.</p>
<ul>
<li>Deja a un lado el camino fácil, solo te llevará a lugares comunes.</li>
<li>Relaja la mente, desocúpala, abúrrete, piensa, medita, pasea por nuevos lugares e intenta mirar las cosas con otros ojos.</li>
<li>Apúntalo todo, toma notas, haz bocetos y no rechaces nada de antemano por absurdo que parezca.</li>
<li>Huye de lo aceptado, sé inconformista, cambia las cosas de sitio, combina ideas y déjalas reposar.</li>
</ul>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>No es que siguiendo estos pasos te conviertas en alguien creativo así sin más, de hecho, ya todos lo somos de una u otra manera, pero seguro que aplicar estos consejos te ayudará a mejorar tu creatividad.</p>
<p>El dibujo que ilustra esta entrada lo realicé originariamente a lápiz en una estancia en los bosques de Suecia, junto con un verso, y tiene mucho que ver con lo comentado anteriormente. <strong>Puedes bajarte una versión vectorial</strong> para imprimirla, hacerte una camiseta, colocarla en tu web o donde te plazca, usando el botón &#8220;descargar&#8221; bajo la imagen.</p>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p style="text-align: center;">Mientras el mundo camina<br />
para mí se para todo…<br />
a veces pienso a mi modo<br />
y capturo ese periodo<br />
en que cesa el ruido intenso…<br />
de ese modo, a veces pienso…<br />
y como un sol en ascenso<br />
surge una idea clandestina<br />
que en suspenso me ilumina.</p>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img decoding="async" width="400" height="400" src="https://www.develooping.com/wp-content/uploads/2017/09/a-veces-pienso-crop.jpg" class="vc_single_image-img attachment-full" alt="a veces pienso vectorial" title="a-veces-pienso-crop" srcset="https://www.develooping.com/wp-content/uploads/2017/09/a-veces-pienso-crop.jpg 400w, https://www.develooping.com/wp-content/uploads/2017/09/a-veces-pienso-crop-300x300.jpg 300w, https://www.develooping.com/wp-content/uploads/2017/09/a-veces-pienso-crop-247x247.jpg 247w" sizes="(max-width: 400px) 100vw, 400px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<div style="text-align: center;"><a class="qbutton" href="/wp-content/uploads/2017/09/a-veces-pienso.pdf">Descargar</a></div>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div>
</div><p>La entrada <a href="https://www.develooping.com/a-veces-pienso/">A veces pienso</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Solo vemos lo que ya está en nuestra mente</title>
		<link>https://www.develooping.com/solo-vemos-lo-ya-esta-nuestra-mente/</link>
		
		<dc:creator><![CDATA[develooping]]></dc:creator>
		<pubDate>Wed, 16 Aug 2017 15:45:35 +0000</pubDate>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Descargas]]></category>
		<category><![CDATA[Diseño Gráfico]]></category>
		<guid isPermaLink="false">http://www.develooping.com/?p=2582</guid>

					<description><![CDATA[<p>Hace no mucho escribí una entrada sobre cómo el contexto influye en nuestra percepción. Lo que hay alrededor de cualquier elemento condiciona la imagen que nos creamos. Pero es evidente que no es lo único que afecta. Lo que vemos también se ve influido, y mucho, por nuestras experiencias previas.</p>
<p>La entrada <a href="https://www.develooping.com/solo-vemos-lo-ya-esta-nuestra-mente/">Solo vemos lo que ya está en nuestra mente</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Hace no mucho escribí una entrada sobre cómo <a href="http://www.develooping.com/blanco-o-negro/">el contexto influye en nuestra percepción</a>. Lo que hay alrededor de cualquier elemento condiciona la imagen que nos creamos. Pero es evidente que no es lo único que afecta. <strong>Lo que vemos también se ve influido, y mucho, por nuestras expectativas y nuestras experiencias</strong>.</p>
<p>Sin entrar en demasiada profundidad sobre la naturaleza de la realidad, nuestro cerebro está programado para intentar explicarla y lo hace buscando en sus registros aquellos patrones que encajan con lo que percibe, igual que cuando leemos una palabra reconocemos su significado solo si lo conocíamos de antemano.</p>
<h5>El perro que se hizo humano</h5>
<p>Eso me recuerda una vez que iba andando por la ciudad cerca de un seto y percibí algo que se movía entre los arbustos. Inmediatamente pensé que se trataba de un perro. Hasta aquí todo bien, solo que poco después vi de reojo que se trataba de una persona que se incorporaba entre los matojos. Sin esta segunda información, por muy difusa que fuera, habría continuado mi marcha plenamente convencido de haber visto un perro, pero gracias a ella seguí caminando preguntándome por las razones por la que ese hombre estaba agazapado tras los matorrales.</p>
<p>Podría ser que estuviera satisfaciendo una necesidad fisiológica, o que se levantara de una borrachera que lo dejó durmiendo la mona en el primer sitio que encontró. Quién sabe, realmente todo ocurrió de forma poco nítida en un abrir y cerrar de ojos, pero fue suficiente para que <strong>la percepción de lo ocurrido pasara por varias interpretaciones</strong>.</p>
<p>Seguí la marcha pensando que si en ese momento volvía la vista atrás me arriesgaba a que la realidad volviera a cambiar. Lo que inicialmente era un perro se convirtió en un hombre satisfaciendo alguna necesidad, así que podía ocurrir que se transformara de nuevo en cualquier otra cosa, ya fuera un extraterrestre que se despojaba de su disfraz humano o un espectro que atormentaba a los paseantes.</p>
<p>Todo era posible, pero a pesar de las infinitas opciones que se abrieron ante mi mente, decidí conformarme con la imagen del hombre, de la misma manera en que un niño tranquiliza sus dudas con cualquier explicación.</p>
<h5>Guapito de cara</h5>
<p>Es curioso, porque hasta que no he escrito este recuerdo no he descubierto su conexión con la imagen que encabeza esta página. Una de las alumnas de un curso que impartí se dirigía a mí a veces con la expresión &#8220;guapito de cara&#8221;, la mayoría de las veces cargándola de ironía, así que decidí usarla para ilustrar la subjetividad de la percepción.</p>
<p>Quise que la ilustración tuviera trazos muy simples, por lo que empleé un rotulador grueso y un papel muy pequeño para asegurar una forma esquemática que evitara detalles innecesarios. La idea consistía en realizar un dibujo que fuera interpretado de distinta manera dependiendo del receptor.</p>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img decoding="async" width="400" height="300" src="https://www.develooping.com/wp-content/uploads/2017/08/guapito-de-cara.jpg" class="vc_single_image-img attachment-full" alt="guapito de cara" title="guapito-de-cara" srcset="https://www.develooping.com/wp-content/uploads/2017/08/guapito-de-cara.jpg 400w, https://www.develooping.com/wp-content/uploads/2017/08/guapito-de-cara-120x90.jpg 120w, https://www.develooping.com/wp-content/uploads/2017/08/guapito-de-cara-300x225.jpg 300w" sizes="(max-width: 400px) 100vw, 400px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<div style="text-align: center;"><a class="qbutton" href="/wp-content/uploads/2017/08/guapito-de-cara.pdf">Descargar</a></div>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>El resultado fue el dibujo que puedes apreciar en la anterior imagen de la camiseta. Cualquier niño pequeño (y algún adulto) veía en él <strong>un perrito</strong>. E incluso aunque algún individuo no lo viera claramente al principio, era sencillo hacérselo ver. Y pese a que a algunos les pareciera que el dibujo podía tener elementos con una proporción extraña, aceptaban como válida tal interpretación.</p>
<p>Otros muchos, siempre adultos, veían en el dibujo el cuerpo de <strong>un hombre desnudo con los brazos a la espalda y un pene descomunal</strong>. Evidentemente esta explicación nunca procedía de un niño, ya que éstos carecían de ese patrón en su mente para poder identificarlo como tal.</p>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>La presencia en el texto de la palabra &#8220;cara&#8221; también ayudaba a condicionar la construcción mental de un rostro. Aunque &#8220;guapito&#8221; combinaba &#8220;gua&#8221; y &#8220;pito&#8221;, nombres infantiles de un perro y un pene, era una pista oculta prácticamente imposible de detectar. El sexo era un buen tema para estudiar la influencia de la experiencia en la percepción ya que es algo que se procura mantener apartado de la mente de los niños.</p>
<h5>Una cerdada</h5>
<p>O eso es lo que pensaron algunos al ver la siguiente prueba. En esta ocasión hice uso de un personaje ampliamente reconocido entre los niños pequeños. Al hacerlo me aseguraba de que ya tenían creada una interpretación de la imagen y que la tendencia de la mente a acomodarse en lo conocido les impediría ver más allá.</p>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="400" height="300" src="https://www.develooping.com/wp-content/uploads/2017/08/peppa-guarra.jpg" class="vc_single_image-img attachment-full" alt="peppa la guarra" title="peppa-guarra" srcset="https://www.develooping.com/wp-content/uploads/2017/08/peppa-guarra.jpg 400w, https://www.develooping.com/wp-content/uploads/2017/08/peppa-guarra-120x90.jpg 120w, https://www.develooping.com/wp-content/uploads/2017/08/peppa-guarra-300x225.jpg 300w" sizes="auto, (max-width: 400px) 100vw, 400px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<div style="text-align: center;"><a class="qbutton" href="/wp-content/uploads/2017/08/peppa-guarra.pdf">Descargar</a></div>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Cambié el término inglés &#8220;pig&#8221; por la traducción &#8220;guarra&#8221;, que en español puede tener matices algo más insultantes, así que sustituí la G por una W para dificultar la lectura entre los menores, ya que es una letra con poco uso práctico en español.</p>
<p>Me inspiré en una imagen en la que Peppa Pig estaba junto a su hermano George. En mi versión recorté la cara del hermano para mostrar solo su hocico y eliminé uno de sus orificios nasales. Aunque la modificación era muy sutil, fue más que suficiente para que lo que quedaba de George pudiera interpretarse como un pene en aquellas personas que ya tienen el patrón en sus mentes &#8220;sucias&#8221;.</p>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>La imagen resultante ofrecía una alta carga sexual, pero ésta era <strong>absolutamente invisible a los ojos de un niño pequeño</strong> y es que, como decía en el título, no podemos reconocer algo si no hay un patrón en nuestra mente que nos permita identificarlo.</p>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid  peque" style='background-color:#fcf9e0; text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Como extra, puedes <strong>descargar ambas imágenes en formato PDF vectorial</strong> y darle el uso que creas conveniente aunque con algunas limitaciones al respecto de la imagen de Peppa Pig. Al tratarse de un personaje cuyos derechos de reproducción y copia están actualmente en manos de su compañía, la copia aquí usada se ampara en varias figuras legales, entre las que están el derecho al uso justo como parodia y el derecho al uso &#8220;de mínimos&#8221; (que básicamente establece que la ley no se ocupa de nimiedades). Habiendo como hay miles de parodias en YouTube, y no haciéndose un uso comercial del personaje, parece razonable entenderlo así. En cualquier caso, al descargar cualquiera de estas imágenes se entiende que aceptas que solo le darás un uso personal y no comercial.</p>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div>
</div><p>La entrada <a href="https://www.develooping.com/solo-vemos-lo-ya-esta-nuestra-mente/">Solo vemos lo que ya está en nuestra mente</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Transferir archivo al ordenador y otras trastadas</title>
		<link>https://www.develooping.com/transferir-archivo-al-ordenador-otras-trastadas/</link>
		
		<dc:creator><![CDATA[develooping]]></dc:creator>
		<pubDate>Mon, 24 Jul 2017 18:55:09 +0000</pubDate>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Descargas]]></category>
		<category><![CDATA[Diseño Gráfico]]></category>
		<guid isPermaLink="false">http://www.develooping.com/?p=2638</guid>

					<description><![CDATA[<p>A veces, trabajar con archivos en el ordenador puede ser una tarea exasperante. Por eso, hemos preparado una breve guía gráfica que te ayudará a saber cómo realizar las tareas fundamentales. Esperamos que te sea de utilidad y la disfrutes.</p>
<p>La entrada <a href="https://www.develooping.com/transferir-archivo-al-ordenador-otras-trastadas/">Transferir archivo al ordenador y otras trastadas</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>A veces, trabajar con archivos en el ordenador puede ser una tarea exasperante. Por eso, hemos preparado <strong>una breve guía gráfica que te ayudará a saber cómo realizar las tareas fundamentales</strong>. Esperamos que te sea de utilidad y la disfrutes.</p>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="298" height="421" src="https://www.develooping.com/wp-content/uploads/2017/07/chivo-1.jpg" class="vc_single_image-img attachment-full" alt="salvar ar chivo" title="chivo-1" srcset="https://www.develooping.com/wp-content/uploads/2017/07/chivo-1.jpg 298w, https://www.develooping.com/wp-content/uploads/2017/07/chivo-1-212x300.jpg 212w" sizes="auto, (max-width: 298px) 100vw, 298px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="298" height="421" src="https://www.develooping.com/wp-content/uploads/2017/07/chivo-2.jpg" class="vc_single_image-img attachment-full" alt="comprimir ar chivo" title="chivo-2" srcset="https://www.develooping.com/wp-content/uploads/2017/07/chivo-2.jpg 298w, https://www.develooping.com/wp-content/uploads/2017/07/chivo-2-212x300.jpg 212w" sizes="auto, (max-width: 298px) 100vw, 298px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="298" height="421" src="https://www.develooping.com/wp-content/uploads/2017/07/chivo-3.jpg" class="vc_single_image-img attachment-full" alt="abrir ar chivo" title="chivo-3" srcset="https://www.develooping.com/wp-content/uploads/2017/07/chivo-3.jpg 298w, https://www.develooping.com/wp-content/uploads/2017/07/chivo-3-212x300.jpg 212w" sizes="auto, (max-width: 298px) 100vw, 298px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="298" height="421" src="https://www.develooping.com/wp-content/uploads/2017/07/chivo-4.jpg" class="vc_single_image-img attachment-full" alt="cerrar ar chivo" title="chivo-4" srcset="https://www.develooping.com/wp-content/uploads/2017/07/chivo-4.jpg 298w, https://www.develooping.com/wp-content/uploads/2017/07/chivo-4-212x300.jpg 212w" sizes="auto, (max-width: 298px) 100vw, 298px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="298" height="421" src="https://www.develooping.com/wp-content/uploads/2017/07/chivo-5.jpg" class="vc_single_image-img attachment-full" alt="imprimir ar chivo" title="chivo-5" srcset="https://www.develooping.com/wp-content/uploads/2017/07/chivo-5.jpg 298w, https://www.develooping.com/wp-content/uploads/2017/07/chivo-5-212x300.jpg 212w" sizes="auto, (max-width: 298px) 100vw, 298px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="298" height="421" src="https://www.develooping.com/wp-content/uploads/2017/07/chivo-6.jpg" class="vc_single_image-img attachment-full" alt="subir ar chivo" title="chivo-6" srcset="https://www.develooping.com/wp-content/uploads/2017/07/chivo-6.jpg 298w, https://www.develooping.com/wp-content/uploads/2017/07/chivo-6-212x300.jpg 212w" sizes="auto, (max-width: 298px) 100vw, 298px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="298" height="421" src="https://www.develooping.com/wp-content/uploads/2017/07/chivo-7.jpg" class="vc_single_image-img attachment-full" alt="bajar ar chivo" title="chivo-7" srcset="https://www.develooping.com/wp-content/uploads/2017/07/chivo-7.jpg 298w, https://www.develooping.com/wp-content/uploads/2017/07/chivo-7-212x300.jpg 212w" sizes="auto, (max-width: 298px) 100vw, 298px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="298" height="421" src="https://www.develooping.com/wp-content/uploads/2017/07/chivo-8.jpg" class="vc_single_image-img attachment-full" alt="cortar ar chivo" title="chivo-8" srcset="https://www.develooping.com/wp-content/uploads/2017/07/chivo-8.jpg 298w, https://www.develooping.com/wp-content/uploads/2017/07/chivo-8-212x300.jpg 212w" sizes="auto, (max-width: 298px) 100vw, 298px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="298" height="421" src="https://www.develooping.com/wp-content/uploads/2017/07/chivo-9.jpg" class="vc_single_image-img attachment-full" alt="enviar ar chivo" title="chivo-9" srcset="https://www.develooping.com/wp-content/uploads/2017/07/chivo-9.jpg 298w, https://www.develooping.com/wp-content/uploads/2017/07/chivo-9-212x300.jpg 212w" sizes="auto, (max-width: 298px) 100vw, 298px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="298" height="421" src="https://www.develooping.com/wp-content/uploads/2017/07/chivo-10.jpg" class="vc_single_image-img attachment-full" alt="pegar ar chivo" title="chivo-10" srcset="https://www.develooping.com/wp-content/uploads/2017/07/chivo-10.jpg 298w, https://www.develooping.com/wp-content/uploads/2017/07/chivo-10-212x300.jpg 212w" sizes="auto, (max-width: 298px) 100vw, 298px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="298" height="421" src="https://www.develooping.com/wp-content/uploads/2017/07/chivo-11.jpg" class="vc_single_image-img attachment-full" alt="eliminar ar chivo" title="chivo-11" srcset="https://www.develooping.com/wp-content/uploads/2017/07/chivo-11.jpg 298w, https://www.develooping.com/wp-content/uploads/2017/07/chivo-11-212x300.jpg 212w" sizes="auto, (max-width: 298px) 100vw, 298px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="298" height="421" src="https://www.develooping.com/wp-content/uploads/2017/07/chivo-12.jpg" class="vc_single_image-img attachment-full" alt="duplicar ar chivo" title="chivo-12" srcset="https://www.develooping.com/wp-content/uploads/2017/07/chivo-12.jpg 298w, https://www.develooping.com/wp-content/uploads/2017/07/chivo-12-212x300.jpg 212w" sizes="auto, (max-width: 298px) 100vw, 298px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Y para que puedas consultarlo siempre que quieras, o hacer con ello lo que desees, aquí te dejamos un botoncito con el que puedes descargar un PDF vectorial con todos los gráficos.</p>
<div style="text-align: center;"><a class="qbutton" href="/wp-content/uploads/2017/07/ar-chivos.pdf">Descargar</a></div>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div>
</div><p>La entrada <a href="https://www.develooping.com/transferir-archivo-al-ordenador-otras-trastadas/">Transferir archivo al ordenador y otras trastadas</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Colorear parte de imagen con Canvas</title>
		<link>https://www.develooping.com/colorear-parte-de-imagen-con-canvas/</link>
		
		<dc:creator><![CDATA[develooping]]></dc:creator>
		<pubDate>Wed, 24 May 2017 16:44:21 +0000</pubDate>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Descargas]]></category>
		<category><![CDATA[Diseño Web]]></category>
		<guid isPermaLink="false">http://www.develooping.com/?p=2324</guid>

					<description><![CDATA[<p>En esta ocasión ampliaremos lo explicado anteriormente para ofrecer una solución que permite colorear dinámicamente parte de una imagen y que funciona en todos los navegadores recientes, tanto en escritorio como en dispositivos móviles.</p>
<p>La entrada <a href="https://www.develooping.com/colorear-parte-de-imagen-con-canvas/">Colorear parte de imagen con Canvas</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Hace unos días publiqué una entrada en la que explicaba cómo hacer uso de la propiedad CSS mix-blend-mode para conseguir <a href="/cambiar-el-color-de-parte-de-una-imagen-dinamicamente/">colorear parte de una imagen</a>. Pero como suele ocurrir frecuentemente, los navegadores de Microsoft se han quedado atrás en la adopción de esa propiedad a pesar de ser una recomendación oficial, así que la solución planteada no funcionaba correctamente en ellos. En esta ocasión ampliaremos lo explicado anteriormente para ofrecer <strong>una solución que cubre todos los navegadores recientes</strong>.</p>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Como ya teníamos una solución válida para la mayoría de los navegadores, lo primero que haremos es detectar si el navegador soporta los efectos de fusión de capas por CSS, para ofrecerle una solución alternativa en caso contrario. Y como siempre que queremos detectar si el navegador soporta o no determinada propiedad, lo mejor es echar mano de <a href="https://modernizr.com/download?backgroundblendmode-setclasses" target="_blank" rel="noopener noreferrer">Modernizr</a>.</p>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 12px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="600" height="300" src="https://www.develooping.com/wp-content/uploads/2017/05/css-background-modernizr.gif" class="vc_single_image-img attachment-full" alt="modernizr" title="css-background-modernizr" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 12px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Para construir nuestro script de detección de propiedades, seleccionamos &#8220;CSS Background Blend Mode&#8221; y pulsamos el botón &#8220;Build&#8221;. Eso es todo, no necesitamos detectar nada más. En nuestro caso lo hemos renombrado como modernizr-backgroundblend.js</p>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<pre class="lang:xhtml decode:true " title="Modernizr">&lt;script type="text/javascript" src="js/modernizr-backgroundblend.js"&gt;&lt;/script&gt;

&lt;script type="text/javascript"&gt;

if (Modernizr.backgroundblendmode) {
  	// mix-blend-mode supported
} else {
  	// mix-blend-mode not-supported (use canvas)
}
&lt;/script&gt;</pre>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h5>La página</h5>
<p>La idea es seguir conservando la versión anterior en aquellos navegadores en los que funciona, y ofrecer una alternativa a través de canvas para los demás. Es cierto que la opción basada en canvas funcionaría correctamente en todos los navegadores recientes, pero mantendremos también la versión anterior por razones de rendimiento.</p>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<pre class="lang:xhtml decode:true " title="La página completa">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
	&lt;meta charset="UTF-8" &gt;

	&lt;title&gt;Change Image Color&lt;/title&gt;

	&lt;link rel="stylesheet" href="styles/styles.css"&gt;
	&lt;link rel="stylesheet" href="styles/jquery.simplecolorpicker.css"&gt;

	&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.js"&gt;&lt;/script&gt;
	&lt;script type="text/javascript" src="js/jquery.simplecolorpicker.js"&gt;&lt;/script&gt;
    &lt;script type="text/javascript" src="js/modernizr-backgroundblend.js"&gt;&lt;/script&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;div id="tshirt_container"&gt;
	&lt;img src="images/white-t-shirt.jpg" class="tshirt_layer" id="tshirt_layer_1"&gt;
	&lt;img src="images/guy.png" class="tshirt_layer" id="tshirt_layer_2"&gt;	
&lt;/div&gt;

&lt;select name="colorpicker-shortlist" id="colorpicker"&gt;
  &lt;option value="#7bd148""&gt;Green&lt;/option&gt;
  &lt;option value="#5484ed"&gt;Bold blue&lt;/option&gt;
  &lt;option value="#a4bdfc"&gt;Blue&lt;/option&gt;
  &lt;option value="#46d6db"&gt;Turquoise&lt;/option&gt;
  &lt;option value="#7ae7bf"&gt;Light green&lt;/option&gt;
  &lt;option value="#51b749"&gt;Bold green&lt;/option&gt;
  &lt;option value="#fbd75b"&gt;Yellow&lt;/option&gt;
  &lt;option value="#ffb878"&gt;Orange&lt;/option&gt;
  &lt;option value="#ff887c"&gt;Red&lt;/option&gt;
  &lt;option value="#dc2127"&gt;Bold red&lt;/option&gt;
  &lt;option value="#dbadff"&gt;Purple&lt;/option&gt;
  &lt;option value="#e1e1e1"&gt;Gray&lt;/option&gt;
  &lt;option value="#cabdbf"&gt;#cabdbf&lt;/option&gt;
&lt;/select&gt;

&lt;script type="text/javascript"&gt;
$(window).load(function() {//we need to be sure that the images have loaded 

	if (Modernizr.backgroundblendmode) {// mix-blend-mode supported

    	$('select[name="colorpicker-shortlist"]').simplecolorpicker('selectColor', '#7bd148');
   	 	$('#tshirt_layer_2').css('background-color', $('select[name="colorpicker-shortlist"]').val());
		$('select[name="colorpicker-shortlist"]').on('change', function() {
    		$('#tshirt_layer_2').css('background-color', $('select[name="colorpicker-shortlist"]').val());
  		});	

	} else {// mix-blend-mode not-supported (use canvas)

        function hexToRgb(hex) {       
            var color_array = new Object();
            hex = hex.replace(/[^0-9A-F]/gi, '');
    		var bigint = parseInt(hex, 16);
    		color_array[0] = (bigint &gt;&gt; 16) &amp; 255;
    		color_array[1] = (bigint &gt;&gt; 8) &amp; 255;
    		color_array[2] = bigint &amp; 255;
    		return color_array;
		}

        $('select[name="colorpicker-shortlist"]').simplecolorpicker('selectColor', '#7bd148');

        $('select[name="colorpicker-shortlist"]').on('change', function() {

    		multiplyColor = hexToRgb($('select[name="colorpicker-shortlist"]').val());

    		redraw();

  		});

  		function redraw(){

  			imageBottom = document.getElementById('tshirt_layer_1');
  			$('#tshirt_container canvas').remove(); 
			canvas = document.createElement('canvas');
			canvas.width = imageBottom.width;
			canvas.height = imageBottom.height;
			imageBottom.parentNode.insertBefore(canvas, imageBottom);

			ctx = canvas.getContext('2d');
			ctx.drawImage(imageBottom, 0, 0);

			// Get the CanvasPixelArray from the given coordinates.
			imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);
			pix = imgData.data;

			//multiplyColor = [80, 120, 10];
			multiplyColor = hexToRgb($('select[name="colorpicker-shortlist"]').val());

	    	// Loop over each pixel and change the color.
			for (var i = 0, n = pix.length; i &lt; n; i += 4) {
    			pix[i  ] = multiply(multiplyColor[0], pix[i  ]); // red
    			pix[i+1] = multiply(multiplyColor[1], pix[i+1]); // green
    			pix[i+2] = multiply(multiplyColor[2], pix[i+2]); // blue
    			// pix[i+3] is alpha channel (ignored)
			}
			// Draw the result on the canvas
			ctx.putImageData(imgData, 0, 0);

			function multiply(topValue, bottomValue){
  				return topValue * bottomValue / 255;
			}

		}

		redraw();

	}

})
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Si lo comparas con la solución planteada en la entrada anterior verás que la parte</p>
<pre class="lang:js decode:true " title="mix-blend-mode supported">if (Modernizr.backgroundblendmode) {// mix-blend-mode supported

    	$('select[name="colorpicker-shortlist"]').simplecolorpicker('selectColor', '#7bd148');
   	 	$('#tshirt_layer_2').css('background-color', $('select[name="colorpicker-shortlist"]').val());
		$('select[name="colorpicker-shortlist"]').on('change', function() {
    		$('#tshirt_layer_2').css('background-color', $('select[name="colorpicker-shortlist"]').val());
  		});	

}</pre>
<p>es esencialmente idéntica y que todo lo nuevo ha sido añadido si no se cumple la condición (else).<br />
También verás que hemos cambiado <code>$(document).ready(function() {</code> por <code>$(window).load(function() {</code><br />
Esto es así porque necesitamos asegurarnos de que las imágenes han sido cargadas para poder hacer operaciones con ellas.</p>
<p>La programación para crear un efecto multiply aplicando un color a una imagen se basa directamente en <a href="http://albertogasparin.it/articles/2011/05/html5-multiply-filter-canvas/" target="_blank" rel="noopener noreferrer">lo explicado en esta página</a> añadiéndole algunas variaciones. En primer lugar lo hemos &#8220;empaquetado&#8221; en una función (redraw), y le hemos añadido una nueva función (hexToRgb) para convertir los valores devueltos por el selector de colores al formato de array [r,g,b] que necesita.</p>
<p>Como necesitamos poder aplicar la función múltiples veces, dentro de la misma usamos la expresión jQuery <code>$('#tshirt_container canvas').remove();</code> para eliminar el elemento canvas antes de volverlo a recrear.</p>

		</div> 
	</div> 
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<pre class="lang:xhtml decode:true " title="else">else {// mix-blend-mode not-supported (use canvas)

        function hexToRgb(hex) {       
            var color_array = new Object();
            hex = hex.replace(/[^0-9A-F]/gi, '');
    		var bigint = parseInt(hex, 16);
    		color_array[0] = (bigint &gt;&gt; 16) &amp; 255;
    		color_array[1] = (bigint &gt;&gt; 8) &amp; 255;
    		color_array[2] = bigint &amp; 255;
    		return color_array;
		}

        $('select[name="colorpicker-shortlist"]').simplecolorpicker('selectColor', '#7bd148');

        $('select[name="colorpicker-shortlist"]').on('change', function() {

    		multiplyColor = hexToRgb($('select[name="colorpicker-shortlist"]').val());

    		redraw();

  		});

  		function redraw(){

  			imageBottom = document.getElementById('tshirt_layer_1');
  			$('#tshirt_container canvas').remove(); 
			canvas = document.createElement('canvas');
			canvas.width = imageBottom.width;
			canvas.height = imageBottom.height;
			imageBottom.parentNode.insertBefore(canvas, imageBottom);

			ctx = canvas.getContext('2d');
			ctx.drawImage(imageBottom, 0, 0);

			// Get the CanvasPixelArray from the given coordinates.
			imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);
			pix = imgData.data;

			//multiplyColor = [80, 120, 10];
			multiplyColor = hexToRgb($('select[name="colorpicker-shortlist"]').val());

	    	// Loop over each pixel and change the color.
			for (var i = 0, n = pix.length; i &lt; n; i += 4) {
    			pix[i  ] = multiply(multiplyColor[0], pix[i  ]); // red
    			pix[i+1] = multiply(multiplyColor[1], pix[i+1]); // green
    			pix[i+2] = multiply(multiplyColor[2], pix[i+2]); // blue
    			// pix[i+3] is alpha channel (ignored)
			}
			// Draw the result on the canvas
			ctx.putImageData(imgData, 0, 0);

			function multiply(topValue, bottomValue){
  				return topValue * bottomValue / 255;
			}

		}

		redraw();

	}

</pre>

		</div> 
	</div> 
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h5>El CSS</h5>
<p>Modernizr también introduce las clases  <code>.backgroundblendmode</code> y <code>.no-backgroundblendmode</code> para poder realizar selecciones en nuestro CSS basados en la detección de esta propiedad. Nuestro CSS queda prácticamente idéntico al del ejemplo anterior, pero aprovechamos para añadir la propiedad CSS <code>mix-blen-mode: multiply</code> solo en el caso de estar soportada.</p>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<pre class="lang:css decode:true " title="Estilos">.simplecolorpicker{
 max-width: 300px;
}
.simplecolorpicker span.color[data-selected]:after {
  content: '\2714'; /* Ok/check mark */
  width: 12px;
  display: block;
  padding-left: 4px
}

/*t-shirt*/
#tshirt_container{
 position: relative;
 width: 300px;
 height: 450px;
}

#tshirt_container .tshirt_layer, #tshirt_container canvas{
 position: absolute;
 display: table;
  width: 300px;
 height: 450px;
}

#tshirt_layer_1{
 z-index: 1;
}

#tshirt_layer_2{
	z-index: 3;
}
.backgroundblendmode #tshirt_layer_2 { 
	-o-mix-blend-mode: multiply;
	-ms-mix-blend-mode: multiply;
	-moz-mix-blend-mode: multiply;
	mix-blend-mode: multiply;
	-webkit-mix-blend-mode: multiply;
}

.no-backgroundblendmode  #tshirt_layer_2  { 
/*styles if background blend mode is not supported*/ 
}

#tshirt_container canvas{
 	z-index: 2;
}</pre>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h5>El resultado</h5>
<p>Aquí tienes el resultado de todo el código anterior. Puedes usar el botón &#8220;Descargar&#8221; al final de la página para bajarte una copia con todos los scripts, estilos y archivos necesarios.</p>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 12px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<div id="tshirt_container"><img decoding="async" id="tshirt_layer_1" class="tshirt_layer" src="/wp-content/uploads/2017/05/white-t-shirt.jpg" alt="t-shirt background" /><img decoding="async" id="tshirt_layer_2" class="tshirt_layer" src="/wp-content/uploads/2017/05/guy.png" alt="guy with t-shirt" /></div>
<p><select id="colorpicker" name="colorpicker-shortlist"><option value="#7bd148">Green</option><option value="#5484ed">Bold blue</option><option value="#a4bdfc">Blue</option><option value="#46d6db">Turquoise</option><option value="#7ae7bf">Light green</option><option value="#51b749">Bold green</option><option value="#fbd75b">Yellow</option><option value="#ffb878">Orange</option><option value="#ff887c">Red</option><option value="#dc2127">Bold red</option><option value="#dbadff">Purple</option><option value="#e1e1e1">Gray</option><option value="#cabdbf">#cabdbf</option></select></p>

		</div> 
	</div> 
	<div class="wpb_raw_code wpb_raw_html wpb_content_element" >
		<div class="wpb_wrapper">
			<script type="text/javascript" src="/wp-content/themes/bridge-child/js/jquery.simplecolorpicker.js"></script>
<!--<script type="text/javascript" src="/wp-content/themes/bridge-child/js/modernizr-backgroundblend.js"></script>-->
<script type="text/javascript">
jQuery(window).load(function() {

	if (Modernizr.backgroundblendmode) {
  	
    	jQuery('select[name="colorpicker-shortlist"]').simplecolorpicker('selectColor', '#7bd148');
   	 	jQuery('#tshirt_layer_2').css('background-color', jQuery('select[name="colorpicker-shortlist"]').val());
		jQuery('select[name="colorpicker-shortlist"]').on('change', function() {
    		jQuery('#tshirt_layer_2').css('background-color', jQuery('select[name="colorpicker-shortlist"]').val());
  		});	
  	  		 		
  		
	} else {


        function hexToRgb(hex) {       
            var color_array = new Object();
            hex = hex.replace(/[^0-9A-F]/gi, '');
    		var bigint = parseInt(hex, 16);
    		color_array[0] = (bigint >> 16) & 255;
    		color_array[1] = (bigint >> 8) & 255;
    		color_array[2] = bigint & 255;
    		return color_array;
		}
 
        jQuery('select[name="colorpicker-shortlist"]').simplecolorpicker('selectColor', '#7bd148');
        
        
        jQuery('select[name="colorpicker-shortlist"]').on('change', function() {
    		
    		multiplyColor = hexToRgb(jQuery('select[name="colorpicker-shortlist"]').val());
    		
    		redraw();
    		
  		});
  		
  		function redraw(){
 		
  			imageBottom = document.getElementById('tshirt_layer_1');
  			jQuery('#tshirt_container canvas').remove(); 
			canvas = document.createElement('canvas');
			canvas.width = imageBottom.width;
			canvas.height = imageBottom.height;
			imageBottom.parentNode.insertBefore(canvas, imageBottom);
		
			ctx = canvas.getContext('2d');
			ctx.drawImage(imageBottom, 0, 0);
		

			imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);
			pix = imgData.data;
		

			multiplyColor = hexToRgb(jQuery('select[name="colorpicker-shortlist"]').val());
		

			for (var i = 0, n = pix.length; i < n; i += 4) {
    			pix[i  ] = multiply(multiplyColor[0], pix[i  ]); 
    			pix[i+1] = multiply(multiplyColor[1], pix[i+1]);
    			pix[i+2] = multiply(multiplyColor[2], pix[i+2]);

			}

			ctx.putImageData(imgData, 0, 0);
		
			function multiply(topValue, bottomValue){
  				return topValue * bottomValue / 255;
			}
		
		}
		
		redraw();
		
  		
	}


    
})
</script>

		</div>
	</div>
</div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:center;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

<a  itemprop="url" href="/wp-content/uploads/2017/05/change-image-color-canvas.zip" target="_self"  class="qbutton  center default" style="">Descargar</a>	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div>
</div><p>La entrada <a href="https://www.develooping.com/colorear-parte-de-imagen-con-canvas/">Colorear parte de imagen con Canvas</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cambiar el color de parte de una imagen</title>
		<link>https://www.develooping.com/cambiar-el-color-de-parte-de-una-imagen-dinamicamente/</link>
		
		<dc:creator><![CDATA[develooping]]></dc:creator>
		<pubDate>Fri, 19 May 2017 10:17:55 +0000</pubDate>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Descargas]]></category>
		<category><![CDATA[Diseño Web]]></category>
		<guid isPermaLink="false">http://www.develooping.com/?p=2223</guid>

					<description><![CDATA[<p>Si has usado Photoshop o algún otro programa de tratamiento de imágenes, puede que hayas empleado los modos de fusión de capas para conseguir colorear determinadas zonas de una imagen. Ahora, con algunas de las nuevas propiedades de CSS3 podemos replicar este mismo efecto de forma dinámica.</p>
<p>La entrada <a href="https://www.develooping.com/cambiar-el-color-de-parte-de-una-imagen-dinamicamente/">Cambiar el color de parte de una imagen</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Si has usado Photoshop o algún otro programa de tratamiento de imágenes, puede que hayas empleado los modos de fusión de capas para conseguir colorear determinadas zonas de una imagen. Con el uso de una máscara para seleccionar la forma y una capa de color en modo &#8220;multiply&#8221; podemos colorear el área que deseemos. Ahora, <strong>con algunas de las nuevas propiedades de CSS3 podemos replicar este mismo efecto de forma dinámica en una página web</strong>.</p>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 12px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="534" height="476" src="https://www.develooping.com/wp-content/uploads/2017/05/photoshop.jpg" class="vc_single_image-img attachment-full" alt="capas en photoshop" title="photoshop" srcset="https://www.develooping.com/wp-content/uploads/2017/05/photoshop.jpg 534w, https://www.develooping.com/wp-content/uploads/2017/05/photoshop-300x267.jpg 300w" sizes="auto, (max-width: 534px) 100vw, 534px" /></div>
		</div>
	</div>
</div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 12px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>En la imagen superior puedes ver un ejemplo del uso de las capas que permitiría conseguir este resultado. Solo cambiando el color de la capa en modo &#8220;multiply&#8221; vemos cambiar el color de la camiseta, colocada en una capa inferior.</p>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 12px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img loading="lazy" decoding="async" width="300" height="450" src="https://www.develooping.com/wp-content/uploads/2017/05/layers.jpg" class="vc_single_image-img attachment-full" alt="" title="layers" srcset="https://www.develooping.com/wp-content/uploads/2017/05/layers.jpg 300w, https://www.develooping.com/wp-content/uploads/2017/05/layers-200x300.jpg 200w" sizes="auto, (max-width: 300px) 100vw, 300px" /></div>
		</div>
	</div>
	<div class="vc_empty_space"  style="height: 12px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Al igual que Photoshop, <strong>los principales navegadores soportan la fusión de capas en modo &#8220;multiply&#8221;</strong>. La única excepción importante la constituyen los navegadores de Microsoft, aunque los desarrolladores de la compañía ya han indicado que lo tienen bajo estudio y posiblemente lo implementarán para principios de 2018. En este estado de cosas ya no es descabellado plantearse hacer uso de ese modo de mezcla, ya que tiene un soporte mayoritario.</p>
<p>En esta ocasión vamos a centrarnos en cómo conseguir este efecto en los <a href="http://caniuse.com/#feat=css-mixblendmode" target="_blank">navegadores que soportan la propiedad CSS mix-blend-mode</a>, que como ya he dicho son la mayoría, y más adelante ofreceremos una solución alternativa para otros navegadores.</p>
<h5>Ponle la camiseta</h5>

		</div> 
	</div> 
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<pre class="lang:xhtml decode:true " title="imagenes">&lt;div id="tshirt_container"&gt;
	&lt;img src="images/white-t-shirt.jpg" class="tshirt_layer" id="tshirt_layer_1"&gt;
	&lt;img src="images/guy.png" class="tshirt_layer" id="tshirt_layer_2"&gt;	
&lt;/div&gt;</pre>

		</div> 
	</div> 
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Lo primero que hemos hecho es colocar la imagen del chico con la camiseta como un png con el hueco de la camiseta transparente, y debajo la camiseta sin color.</p>
<p>Usamos las posiciones y la propiedad z-index para colocar una sobre otra, y a la imagen del chico le añadimos la propiedad mix-blend-mode con el valor multiply.</p>

		</div> 
	</div> 
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<pre class="lang:css decode:true " title="CSS">#tshirt_container{
 position: relative;
 width: 300px;
 height: 450px;
}

#tshirt_container .tshirt_layer{
 position: absolute;
 display: table;
  width: 300px;
 height: 450px;
}

#tshirt_layer_1{
 z-index: 1;
}

#tshirt_layer_2{
	z-index: 2;
	-o-mix-blend-mode: multiply;
	-ms-mix-blend-mode: multiply;
	-moz-mix-blend-mode: multiply;
	mix-blend-mode: multiply;
	-webkit-mix-blend-mode: multiply;
}</pre>

		</div> 
	</div> 
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h5>Dale color</h5>
<p>Llegados a este punto, ya podemos comprobar que <strong>con solo añadirle un color de fondo</strong> (background-color) a la imagen superior (<span class="crayon-k ">#tshirt_layer_2), <strong>podemos colorear la camiseta</strong>.</span></p>

		</div> 
	</div> 
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<pre class="lang:css decode:true " title="Color de fondo">#tshirt_layer_2{
	background-color: #7bd148;
}</pre>

		</div> 
	</div> 
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>También podemos usar un script que nos permita asignar dinámicamente el color de fondo a partir de una selección por parte del usuario. Existen multitud de selectores de color basados en jQuery o directamente en JavaScript que realizan esta tarea y puedes elegir el que mejor se adapte al uso que le vayas a dar.</p>
<p>Yo particularmente he pensado en su aplicación en una tienda, en la que un producto puede tener un número limitado de variaciones de color. Para ello he usado <a href="https://github.com/tkrotoff/jquery-simplecolorpicker" target="_blank">jQuery Simple Color Picker</a>.</p>

		</div> 
	</div> 
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h5>Deja que seleccionen</h5>
<p>No hay problema si has decidido usar cualquier otro selector de color, ya que todo lo que hay que conseguir es permitir al usuario escoger un color y asignar la propiedad background-color de la imagen principal según el valor escogido.</p>
<p>Si vas a usar jQuery Simple Color Picker nos queda poco para tener nuestro selector funcionando. En su propia página de GitHub se muestra cómo hacerlo. Empezaremos por añadir un &#8220;select&#8221; con las opciones que necesitemos.</p>

		</div> 
	</div> 
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<pre class="lang:xhtml decode:true " title="Selector de Colores">&lt;select name="colorpicker-shortlist" id="colorpicker"&gt;
  &lt;option value="#7bd148""&gt;Green&lt;/option&gt;
  &lt;option value="#5484ed"&gt;Bold blue&lt;/option&gt;
  &lt;option value="#a4bdfc"&gt;Blue&lt;/option&gt;
  &lt;option value="#46d6db"&gt;Turquoise&lt;/option&gt;
  &lt;option value="#7ae7bf"&gt;Light green&lt;/option&gt;
  &lt;option value="#51b749"&gt;Bold green&lt;/option&gt;
  &lt;option value="#fbd75b"&gt;Yellow&lt;/option&gt;
  &lt;option value="#ffb878"&gt;Orange&lt;/option&gt;
  &lt;option value="#ff887c"&gt;Red&lt;/option&gt;
  &lt;option value="#dc2127"&gt;Bold red&lt;/option&gt;
  &lt;option value="#dbadff"&gt;Purple&lt;/option&gt;
  &lt;option value="#e1e1e1"&gt;Gray&lt;/option&gt;
  &lt;option value="#cabdbf"&gt;#cabdbf&lt;/option&gt;
&lt;/select&gt;</pre>

		</div> 
	</div> 
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Solo nos quedaría cargar el script (ten presente que es dependiente de jQuery) e indicarle qué hacer</p>

		</div> 
	</div> 
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<pre class="lang:js decode:true " title="Scripts">&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.js"&gt;&lt;/script&gt;

&lt;script type="text/javascript" src="js/jquery.simplecolorpicker.js"&gt;&lt;/script&gt;

&lt;link rel="stylesheet" href="jquery.simplecolorpicker.css"&gt;

&lt;script type="text/javascript"&gt;
$(document).ready(function() {

    // asigna valor por defecto
    $('select[name="colorpicker-shortlist"]').simplecolorpicker('selectColor', '#7bd148');
    $('#tshirt_layer_2').css('background-color', $('select[name="colorpicker-shortlist"]').val());

    //cambia el color según la selección
    $('select[name="colorpicker-shortlist"]').on('change', function() {
    	$('#tshirt_layer_2').css('background-color', $('select[name="colorpicker-shortlist"]').val());
    });

})
&lt;/script&gt;</pre>

		</div> 
	</div> 
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Puedes encontrar una explicación más detallada en la propia página del plugin. No nos vamos a extender más en él ya que para nuestro propósito podríamos haber usado cualquier otro.</p>
<h5>El resultado</h5>
<p>Veamos el resultado obtenido al ponerlo todo junto en una aplicación práctica de uso genérico.</p>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 12px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<div id="tshirt_container"><img decoding="async" id="tshirt_layer_1" class="tshirt_layer" src="/wp-content/uploads/2017/05/white-t-shirt.jpg" alt="t-shirt background" /><img decoding="async" id="tshirt_layer_2" class="tshirt_layer" src="/wp-content/uploads/2017/05/guy.png" alt="guy with t-shirt" /></div>
<p><select id="colorpicker" name="colorpicker-shortlist"><option value="#7bd148">Green</option><option value="#5484ed">Bold blue</option><option value="#a4bdfc">Blue</option><option value="#46d6db">Turquoise</option><option value="#7ae7bf">Light green</option><option value="#51b749">Bold green</option><option value="#fbd75b">Yellow</option><option value="#ffb878">Orange</option><option value="#ff887c">Red</option><option value="#dc2127">Bold red</option><option value="#dbadff">Purple</option><option value="#e1e1e1">Gray</option><option value="#cabdbf">#cabdbf</option></select></p>

		</div> 
	</div> 
	<div class="wpb_raw_code wpb_raw_html wpb_content_element" >
		<div class="wpb_wrapper">
			<style type="text/css">
.simplecolorpicker.picker {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1051;
  display: none;
  float: left;
  min-width: 160px;
  max-width: 283px;
  padding: 5px 0 0 5px;
  margin: 2px 0 0;
  list-style: none;
  background-color: #fff;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, .15);
  -webkit-border-radius: 4px;
     -moz-border-radius: 4px;
          border-radius: 4px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
     -moz-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
          box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
  -webkit-background-clip: padding-box;
     -moz-background-clip: padding;
          background-clip: padding-box;
}
.simplecolorpicker.inline {
  display: table;
  padding: 6px 0;
  margin: auto;
}
.simplecolorpicker span {
  margin: 0 5px 5px 0;
}
.simplecolorpicker.icon,
.simplecolorpicker span.color {
  display: inline-block;
  cursor: pointer;
  border: 1px solid transparent;
}
.simplecolorpicker.icon:after,
.simplecolorpicker span.color:after {
  content: '\00a0\00a0\00a0\00a0';
}
.simplecolorpicker span.color[data-disabled]:hover {
  cursor: not-allowed;
  border: 1px solid transparent;
}
.simplecolorpicker span.color:hover,
.simplecolorpicker span.color[data-selected],
.simplecolorpicker span.color[data-selected]:hover {
  border: 1px solid #222;
}
.simplecolorpicker span.color[data-selected]:after {
  color: #fff;
}
.simplecolorpicker span.vr {
  border-left: 1px solid #222;
}

#tshirt_container{
 position: relative;
 width: 300px;
 height: 450px;
 display: table;
 margin: auto;
}
.simplecolorpicker{
 max-width: 300px;
}
.simplecolorpicker span.color[data-selected]:after {
  content: '\2714';
  width: 12px;
  display: block;
  padding-left: 4px;
}
#tshirt_container .tshirt_layer{
 position: absolute;
 display: table;
  width: 300px;
 height: 450px;
}
#tshirt_layer_1{
 z-index: 1;
}
#tshirt_layer_2{
	z-index: 2;
	-o-mix-blend-mode: multiply;
	-ms-mix-blend-mode: multiply;
	-moz-mix-blend-mode: multiply;
	mix-blend-mode: multiply;
	-webkit-mix-blend-mode: multiply;
}
.simplecolorpicker.icon, .simplecolorpicker span.color {
    width: 16px;
}
</style>
		</div>
	</div>

	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>La economía del método es clarísima. Hemos usado dos imágenes en lugar de trece. El dibujo de la camiseta, en este caso, forma parte de la misma imagen png del chico, pero no sería difícil usar una imagen independiente que también cargara dinámicamente en función de la selección del usuario.</p>
<h5>¿Qué nos queda?</h5>
<p>Bien, como ya sugerí en el párrafo anterior, basándose en estas técnicas se podrían implementar todas las variaciones de una tienda de camisetas usando como base muy pocas imágenes y colocando encima el dibujo seleccionado.</p>
<p><strong>En los casos en los que hay muchas variaciones de color la ventaja es más que evidente</strong>. En el ejemplo de abajo vemos que solo dos imágenes sustituyen a 24 variaciones.</p>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 12px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<div id="shoes_container"><img decoding="async" id="shoes_layer_1" class="shoes_layer" src="/wp-content/uploads/2017/05/shoes.jpg" alt="shoes background" /><img decoding="async" id="shoes_layer_2" class="shoes_layer" src="/wp-content/uploads/2017/05/shoes.png" alt="shoes" /></div>
<p><select id="colorpicker2" name="colorpicker-longlist"><option value="#ac725e">#ac725e</option><option value="#d06b64">#d06b64</option><option value="#f83a22">#f83a22</option><option value="#fa573c">#fa573c</option><option value="#ff7537">#ff7537</option><option value="#ffad46">#ffad46</option><option value="#42d692">#42d692</option><option value="#16a765">#16a765</option><option value="#7bd148">#7bd148</option><option value="#b3dc6c">#b3dc6c</option><option value="#fbe983">#fbe983</option><option value="#fad165">#fad165</option><option value="#92e1c0">#92e1c0</option><option value="#9fe1e7">#9fe1e7</option><option value="#9fc6e7">#9fc6e7</option><option value="#4986e7">#4986e7</option><option value="#9a9cff">#9a9cff</option><option value="#b99aff">#b99aff</option><option value="#c2c2c2">#c2c2c2</option><option value="#cabdbf">#cabdbf</option><option value="#cca6ac">#cca6ac</option><option value="#f691b2">#f691b2</option><option value="#cd74e6">#cd74e6</option><option value="#a47ae2">#a47ae2</option></select></p>

		</div> 
	</div> 
	<div class="wpb_raw_code wpb_raw_html wpb_content_element" >
		<div class="wpb_wrapper">
			<style type="text/css">
#shoes_container{
 position: relative;
 width: 300px;
 height: 225px;
 display: table;
 margin: auto;
}

#shoes_container .shoes_layer{
 position: absolute;
 display: table;
  width: 300px;
 height: 225px;
}

#shoes_layer_1{
 z-index: 1;
}

#shoes_layer_2{
	z-index: 2;
	-o-mix-blend-mode: multiply;
	-ms-mix-blend-mode: multiply;
	-moz-mix-blend-mode: multiply;
	mix-blend-mode: multiply;
	-webkit-mix-blend-mode: multiply;
}
</style>
		</div>
	</div>
</div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_raw_code wpb_raw_html wpb_content_element" >
		<div class="wpb_wrapper">
			<script type="text/javascript" src="/wp-content/themes/bridge-child/js/jquery.simplecolorpicker.js"></script>
<script type="text/javascript">
jQuery(document).ready(function() {
    jQuery('select[name="colorpicker-shortlist"]').simplecolorpicker('selectColor', '#7bd148');
    jQuery('#tshirt_layer_2').css('background-color', jQuery('select[name="colorpicker-shortlist"]').val());
	jQuery('select[name="colorpicker-shortlist"]').on('change', function() {
    	jQuery('#tshirt_layer_2').css('background-color', jQuery('select[name="colorpicker-shortlist"]').val());
  	});
    jQuery('select[name="colorpicker-longlist"]').simplecolorpicker('selectColor', '#ac725e');
    jQuery('#shoes_layer_2').css('background-color', jQuery('select[name="colorpicker-longlist"]').val());
	jQuery('select[name="colorpicker-longlist"]').on('change', function() {
    	jQuery('#shoes_layer_2').css('background-color', jQuery('select[name="colorpicker-longlist"]').val());
  	}); 	
})
</script>
		</div>
	</div>

	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Sin embargo, como dije con anterioridad, <strong>Explorer y Edge no producen el efecto deseado por su falta de soporte a la propiedad mix-blend-mode</strong>. Ambos cambiarán el color de fondo de la imagen según seleccionemos, pero se comportará de forma opaca y no se fusionará con la imagen inferior. Aunque se ha anunciado un futuro soporte por parte de Edge, en la actualidad esta es la situación.</p>
<p>Por ahora vamos a dejarlo aquí. <strong>Más adelante explicaremos la manera de conseguir el mismo efecto en esos navegadores</strong>. Para los que no puedan esperar puedo anticiparles que la solución cosiste en <a href="http://albertogasparin.it/articles/2011/05/html5-multiply-filter-canvas/" target="_blank">realizar un filtro multiply a través de una función aplicada sobre un elemento canvas</a>.</p>
<p>Mientras encuentro tiempo para elaborar esa exlicación, con el siguiente botón puedes <strong>descargar todos los archivos necesarios</strong> para poner en práctica lo que te he contado en esta página. Espero que te sea de utilidad.</p>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:center;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"><a  itemprop="url" href="/wp-content/uploads/2017/05/change-image-color.zip" target="_self"  class="qbutton  center default" style="">Descargar</a>	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style='background-color:#fcf9e0; text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>


	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p><strong>Actualización</strong>: Si estás interesado en una nueva versión que funciona en todos los navegadores, visita nuestra nueva entrada: &#8220;<a href="http://www.develooping.com/colorear-parte-de-imagen-con-canvas/">Colorear parte de una imagen con Canvas</a>&#8220;</p>

		</div> 
	</div> 	<div class="vc_empty_space"  style="height: 32px" ><span
			class="vc_empty_space_inner">
			<span class="empty_space_image"  ></span>
		</span></div>

</div></div></div></div></div>
</div><p>La entrada <a href="https://www.develooping.com/cambiar-el-color-de-parte-de-una-imagen-dinamicamente/">Cambiar el color de parte de una imagen</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Descarga Chuckie vectorial</title>
		<link>https://www.develooping.com/descarga-chuckie-vectorial/</link>
		
		<dc:creator><![CDATA[develooping]]></dc:creator>
		<pubDate>Tue, 19 Apr 2016 21:06:09 +0000</pubDate>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Descargas]]></category>
		<category><![CDATA[Diseño Gráfico]]></category>
		<guid isPermaLink="false">http://www.develooping.com/?p=1868</guid>

					<description><![CDATA[<p>Hace unas días escribí una entrada en la que explicaba cómo contornear imágenes con texto en una página web usando CSS3 y una alternativa con jQuery para los navegadores que aún no soportan esta propiedad. Para hacerlo busqué algún dibujo y encontré en mi ordenador uno que realicé hace ya un tiempo para explicar diseño vectorial en un curso que impartí.</p>
<p>La entrada <a href="https://www.develooping.com/descarga-chuckie-vectorial/">Descarga Chuckie vectorial</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Hace unas días escribí una entrada en la que explicaba cómo <a href="http://www.develooping.com/css-shapes-contornear-imagenes-texto/">contornear imágenes con texto</a> en una página web usando CSS3 y una alternativa con jQuery para los navegadores que aún no soportan esta propiedad. Para hacerlo busqué algún dibujo y encontré en mi ordenador uno que realicé hace ya un tiempo para explicar diseño vectorial en un curso que impartí. Elegí el personaje porque era el preferido de una de mis alumnas… te veo nervioso, tranquilo, no me enrollo más, el botón de abajo te permitirá descargar un archivo .zip que lo contiene en formatos illustrator, pdf y eps que podrás usar libremente… pero… ¿qué haces con el cuchillo?…</p>
<div style="text-align: center;"><img loading="lazy" decoding="async" class="size-medium wp-image-1877 aligncenter" src="http://www.develooping.com/wp-content/uploads/2016/04/chuckie-3-179x300.jpg" alt="descarga chuckie en formato vectorial" width="179" height="300" /><a class="qbutton" href="/wp-content/uploads/2016/04/chuckie.zip">Descargar</a></div>
<p>La entrada <a href="https://www.develooping.com/descarga-chuckie-vectorial/">Descarga Chuckie vectorial</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>CSS Shapes: Contornear imágenes con texto</title>
		<link>https://www.develooping.com/css-shapes-contornear-imagenes-texto/</link>
		
		<dc:creator><![CDATA[develooping]]></dc:creator>
		<pubDate>Sun, 10 Apr 2016 22:27:55 +0000</pubDate>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Descargas]]></category>
		<guid isPermaLink="false">http://www.develooping.com/?p=1705</guid>

					<description><![CDATA[<p>Mejora el aspecto de tus páginas con esta solución para contornear texto alrededor de imágenes basada en CSS con una alternativa en jQuery para aquellos navegadores que aun no han incorporado esta posibilidad.</p>
<p>La entrada <a href="https://www.develooping.com/css-shapes-contornear-imagenes-texto/">CSS Shapes: Contornear imágenes con texto</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Las últimas reencarnaciones de los estándares HTML y CSS trajeron considerables mejoras. HTML5, entre otras aportaciones, incorporó nuevas marcas ( canvas, video, svg…) y elementos semánticos (nav, article, section…). Por su lado, CSS3 tampoco se quedó corto y llegó con nuevos selectores y propiedades. Juntos, supusieron un importante avance en las posibilidades de la web.</p>
<p>Pero aunque la versión definitiva de las especificaciones de HTML5 se publicó a finales de 2014, y las especificaciones de CSS3 son bastante anteriores, hay que entender que <strong>ambos estándares no son adoptados de manera absoluta por los navegadores</strong>. La W3C, el organismo hay detrás de las especificaciones de ambos estándares, sugiere y recomienda, pero en última instancia son los creadores de navegadores los que validan esas recomendaciones incorporándolas en sus programas. Seguramente, <strong>llegarán HTML6 y CSS4 sin que haya habido una implantación completa de sus predecesores</strong>. Es por ello, que a veces, cuando queremos hacer uso de alguna nueva prestación, vemos que ésta no ha sido adoptada completamente por todos los navegadores.</p>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h5>De todas formas…</h5>
<p>Para nuestro propósito usaremos la <a href="https://www.w3.org/TR/css-shapes/" target="_blank">especificación CSS Shapes del W3C</a>. Lamentablemente, por ahora no funciona en todos los navegadores (no te preocupes, que hay solución). En <strong>caniuse.com</strong> podemos <a href="http://caniuse.com/#feat=css-shapes" target="_blank">consultar cúales soportan esta especificación</a> y comprobaremos que hay algunos importantes que por ahora se han quedado fuera.</p>
<p>Siempre que nos encontremos con situaciones parecidas, es necesario <strong>determinar las prestaciones del navegador</strong> para servirle una opción que se adapte a sus posibilidades. Y para ello no conozco mejor alternativa que <strong>modernizr</strong>, que nos ofrece métodos rápidos y eficaces para detectar las prestaciones del navegador.</p>

		</div> 
	</div> </div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h5>Moderniza tu página</h5>
<p>Una de las ventajas de modernizr es que puedes construir una versión solo con las prestaciones que te interesa detectar, lo que lo hace especialmente ligero. En nuestro caso solo <strong>vamos a detectar si el navegador soporta CSS Shapes</strong>, con idea de usarlas en caso afirmativo u ofrecer una alternativa si no es así.</p>
<p>Para ello nos dirigimos a <a href="https://modernizr.com/download?shapes-setclasses" target="_blank">modernizr.com/download?setclasses,</a> nos aseguramos de que está seleccionado <em>CSS Shapes</em> y le damos al botón &#8220;<em>Build</em>&#8221; para descargar el script que nos permitirá detectar si el navegador dispone de esta prestación.<br />
<img loading="lazy" decoding="async" class="size-medium wp-image-1771" src="http://www.develooping.com/wp-content/uploads/2016/04/pantalla-modernizr.gif" alt="pantalla-modernizr" width="600" height="286" /></p>
<p>Una vez bajado podemos renombrarlo como <strong>modernizr-shapes.js</strong> e insertarlo en nuestra página.</p>
<pre title="modernizr" lang="html"><script src="js/modernizr-shapes.js" type="text/javascript"></script></pre>
<p>Usado en nuestra página nos permite detectar con facilidad si nuesto navegador soporta &#8216;<em>shapes</em>&#8216;</p>
<pre title="modernizr shape" lang="javascript">    if (Modernizr.shapes) { 
       // soportado 
    } else { 
       // no soportado 
    }</pre>
<p>Lo que hemos hecho hasta ahora solo nos sirve para diferenciar si un navegador soporta o no <em>CSS shapes</em>. Veamos ahora qué hacer en cada caso. </p>

		</div> 
	</div> </div></div></div></div></div><br />
<div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h5>Si nuestro navegador está en forma</h5>
<p>Si el navegador soporta las formas CSS hay varias maneras de definir una que sirva para que el texto se ciña a su contorno. En nuestro caso, vamos a usar la propiedad CSS <strong>shape-outside</strong> apuntando a un gráfico svg que define la silueta.</p>
<p>Empecemos por ver los elementos HTML y a continuación el CSS</p>
<pre title="CSS Shapes" lang="html">
<img loading="lazy" decoding="async" class="chuckie-shape" src="chuckie.png" alt="" width="262" height="434" /> Aliquam sodales ante id nunc pulvinar, sit amet dignissim lectus vehicula. Maecenas vel placerat lacus. Nulla rhoncus augue dignissim dapibus iaculis.
</pre>
<pre title="CSS Shapes" lang="CSS">.textwrap-container{
 text-align: justify; 
}
.chuckie-shape {
 float: left;
 width: 272px;
 padding-right: 10px;
 -webkit-shape-outside: url('chuckie.svg');
 -moz-shape-outside: url('chuckie.svg');
 -ms-shape-outside: url('chuckie.svg');
 -o-shape-outside: url('chuckie.svg');
 shape-outside: url('chuckie.svg');
}
</pre>
<p>La propiedad shape-outside contiene la url del archivo svg que ves a continuación.</p>
<p><img decoding="async" style="padding-right: 5px;" src="/wp-content/uploads/2016/04/chuckie.svg" alt="" align="left" />SVG (<em>Scalable Vector Graphics</em>) es un formato vectorial que, <a href="http://caniuse.com/#search=svg" target="_blank">como puedes comprobar en caniuse</a>, es soportado por todos los navegadores. Puedes crearlo con software propietario (Illustrator, Corel Draw…), software gratuito (InkScape…) e incluso online. Con el HTML y el CSS anteriores ya podemos lograr que el texto se ciña al espacio reservado en los navegadores que entienden la propiedad (Safari, Chrome y algún otro).</p>
<p>Pero… <strong>¿Por qué hemos puesto la propiedad shape-outside con tantos prefijos</strong>, incluyendo los que pertenecen a navegadores no soportados?<br />
La respuesta es simple: <strong>nos anticipamos al día en que el resto de los navegadores se incorporen</strong>. Y si no lo hacen, tampoco hay que preocuparse, les ofreceremos una alternativa.</p>
<p>Para encontrarla <strong>hemos probado dos soluciones</strong> posibles: <a href="http://blogs.adobe.com/webplatform/2014/05/12/css-shapes-polyfill/" target="_blank">CSS Shapes Polyfill</a> y <a href="http://www.jwf.us/projects/jQSlickWrap/" target="_blank">jQSlickWrap</a>. En mi experiencia, el primero, aunque tiene la ventaja de no depender de jQuery, presenta serios problemas de rendimiento y ya no es mantenido de forma activa. <strong>jQSlickWrap</strong>, si bien depende de jQuery, se ha comportado perfectamente en mis pruebas además de ser más flexible, así que <strong>basaremos en él nuestra solución</strong>.</p>

		</div> 
	</div> </div></div></div></div></div><br />
<div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h5>¿Y qué pasa con el resto?</h5>
<p>Para Explorer, Firefox y el resto de navegadores que a la hora de escribir esto aún no soporta la propiedad <em>shapes</em>, empezaremos por <a href="https://raw.githubusercontent.com/jasonwyatt/jQSlickWrap/master/jquery.slickwrap.js" target="_blank">bajar jQSlickWrap</a> y <a href="http://jquery.com/download/" target="_blank">jQuery</a> para usarlos en nuestra página.</p>
<pre title="slickwrap" lang="html"><script src="js/jquery-1.12.3.min.js" type="text/javascript"></script><script src="js/jquery.slickwrap.js" type="text/javascript"></script></pre>
<p>Después, basta con invocar slickwrap con la siguiente sintaxis</p>
<pre title="slickwrap" lang="javascript">    $(document).ready(function(){
       $('.chuckie-shape').slickWrap({resolution:26});
    });
</pre>
<p>Para un mejor rendimiento, es aconsejable que asignemos a <em>resolution</em> el valor del interlineado del texto en pixels. Si lo deseas, puedes consultar la página de jQSlickWrap para mayor información sobre su uso y ajustes.</p>
<p>Recuerda que ya habíamos solucionado este tema para algunos navegadores, y que esta nueva solución va dirigida al resto. Veamos ahora cómo ponerlo todo junto para cubrir todas las posibilidades.</p>

		</div> 
	</div> </div></div></div></div></div><br />
<div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h5>El código final</h5>
<pre title="El código final.CSS3 Shapes - Contorneo de texto" lang="html"><script src="js/jquery-1.12.3.min.js" type="text/javascript"></script><script src="js/jquery.slickwrap.js" type="text/javascript"></script><script src="js/modernizr-shapes.js" type="text/javascript"></script><script type="text/javascript">// <!&#091;CDATA&#091;
if (Modernizr.shapes) { // soportado, así que no hay que hacer nada } else { $(document).ready(function(){ $('.chuckie-shape').slickWrap({resolution:26}); }); }
// &#093;&#093;></script>
<div class="wrapper">
<p class="textwrap-container"><img loading="lazy" decoding="async" class="chuckie-shape" src="chuckie.png" alt="" width="262" height="434" />Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ullamcorper dolor in justo lobortis, eu facilisis massa pharetra. Integer vehicula porttitor nulla nec consectetur. Proin tempus varius erat vitae varius. Vivamus sit amet eros suscipit, dignissim orci a, tincidunt lacus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec mollis commodo libero sit amet suscipit. Vivamus accumsan turpis et mauris viverra, nec congue dolor feugiat. Morbi feugiat dignissim odio, venenatis euismod lectus malesuada maximus. Sed tempor ligula vitae vestibulum tincidunt. Nullam at eleifend urna. Ut interdum luctus malesuada. Curabitur vitae mauris vitae dui tincidunt pellentesque sed ac lacus. Praesent quis orci tellus. Proin auctor sem at elit condimentum, eu lacinia neque cursus. Vivamus dignissim tincidunt dictum. Maecenas tincidunt venenatis risus ac molestie. Donec id posuere mi. Pellentesque at metus in nisl sollicitudin semper id at quam. In laoreet ex eu neque aliquam pharetra. Nulla facilisi.

&nbsp;

</div>
&nbsp;
</pre>
<p>El archivo styles.css nos queda, añadiéndole algún otro detallito, como sigue</p>
<pre title="El código final" lang="CSS">.wrapper{
display:block;
width: 500px;
}
.textwrap-container{
text-align: justify; 
-webkit-hyphens: auto; 
-moz-hyphens: auto; 
hyphens: auto;
}
.chuckie-shape {
float: left;
width: 272px;
padding-right: 10px;
-webkit-shape-outside: url('chuckie.svg');
-moz-shape-outside: url('chuckie.svg');
-ms-shape-outside: url('chuckie.svg');
-o-shape-outside: url('chuckie.svg');
shape-outside: url('chuckie.svg');
}
</pre>

		</div> 
	</div> </div></div></div></div></div><br />
<div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h5>El resultado</h5>
<p>Con todo lo visto anteriormente obtenemos como resultado algo parecido al texto que ves a continuación y que puede servirte de guía para adaptarlo a tus propias necesidades modificando las imágenes y los estilos. Y añadiendo imaginación nos permitirá efectos más complejos.</p>
<p class="textwrap-container"><img loading="lazy" decoding="async" class="chuckie-shape" src="/wp-content/uploads/2016/04/chuckie.png" alt="contorneo de texto" width="262" height="434" />Se acercó sigilosamente, no pude verlo venir. Sin darme cuenta, se ciñó a mi silueta. Aliquam sodales ante id nunc pulvinar, sit amet dignissim lectus vehicula. Maecenas vel placerat lacus. Nulla rhoncus augue dignissim dapibus iaculis. Quisque nulla nulla, fringilla fringilla aliquam et, tincidunt ut ante. Sed volutpat vulputate venenatis. Maecenas convallis, lacus faucibus posuere iaculis, quam sem tincidunt nunc, eu porta elit erat eu ante. Praesent a volutpat ex. Pellentesque imperdiet feugiat nisl cursus dignissim. Nam eget lorem nec leo porta aliquet at eget dui. Cras convallis, mauris ac posuere porta, magna ligula scelerisque diam, et auctor neque enim eget purus. Praesent massa felis, pulvinar eu mi nec, ultricies mollis arcu. Integer molestie nisl tortor, vitae consequat sem sollicitudin eget. Aliquam massa purus, placerat sed vulputate non, placerat nec risus. Ut et purus semper, molestie magna id, faucibus turpis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>

		</div> 
	</div> </div></div></div></div></div><br />
<div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>
<strong>Puedes descarga todo el código completo con los scripts, el archivo CSS y las imágenes del ejemplo pulsando el siguiente botón</strong></p>
<div style="text-align: center;"><a class="qbutton" href="/wp-content/uploads/2016/04/css3-shapes.zip">Descargar</a></div>
<div class="message_info"><i class="fa fa-info-circle"></i><br />
El uso de archivos svg en estilos CSS, como en este ejemplo, está sujeto a CORS, un protocolo de seguridad que por defecto impide hacer determinados tipos de peticiones entre servidores, por lo que no funcionará en Safari ni Chrome en modo local. No habrá ningún problema cuando lo subas a un servidor.</div>

		</div> 
	</div> </div></div></div></div></div><br />
<div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_raw_code wpb_raw_js" >
		<div class="wpb_wrapper">
			<script type="text/javascript" src="/wp-content/themes/bridge-child/js/jquery.slickwrap.js"></script>
		</div>
	</div>
</div></div></div></div></div><br />
<div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_raw_code wpb_raw_js" >
		<div class="wpb_wrapper">
			<script type="text/javascript" charset="UTF-8">
            jQuery(document).ready(function(){
           if (Modernizr.shapes) {
                  // supported
           } else {
           jQuery('.chuckie-shape').slickWrap({resolution: 26});
           }
            });
</script>
		</div>
	</div>
</div></div></div></div></div>
</div><p>La entrada <a href="https://www.develooping.com/css-shapes-contornear-imagenes-texto/">CSS Shapes: Contornear imágenes con texto</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Vídeos de fondo en iOS (con autoplay)</title>
		<link>https://www.develooping.com/videos-fondo-ios-autoplay/</link>
		
		<dc:creator><![CDATA[develooping]]></dc:creator>
		<pubDate>Fri, 01 Apr 2016 08:08:03 +0000</pubDate>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Descargas]]></category>
		<category><![CDATA[Diseño Web]]></category>
		<guid isPermaLink="false">http://www.develooping.com/?p=1566</guid>

					<description><![CDATA[<p>Últimamente habrás encontrado más de un sitio (como nuestra página principal) que usa vídeos como fondos.</p>
<p>Usando la marca video de HTML5 y su atributo autoplay, es posible hacer que empiecen de forma automática sin necesidad de acción por parte del usuario. Con el CSS adecuado puede colocarse como fondo y ajustarse al ancho de la pantalla.<br />
Sin embargo, habrás visto que esas páginas suelen sustituir ese vídeo por una imagen fija en sus versiones para móvil.</p>
<p>La entrada <a href="https://www.develooping.com/videos-fondo-ios-autoplay/">Vídeos de fondo en iOS (con autoplay)</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p>Últimamente habrás encontrado más de un sitio (como nuestra <a href="http://develooping.com">página principal</a>) que usa vídeos como fondos.</p>
<p>Usando la marca <strong>&lt;video&gt;</strong> de HTML5 y su atributo <strong>autoplay</strong>, es posible hacer que empiecen de forma automática sin necesidad de acción por parte del usuario. Con el CSS adecuado puede colocarse como fondo y ajustarse al ancho de la pantalla.</p>
<p>Hasta aquí todo bien. Sin embargo, habrás visto que esas páginas suelen sustituir ese vídeo por una imagen fija en sus versiones para móvil. Esto se debe principalmente a que Apple y Google, entendiendo que el pobrecito usuario de móvil podría disponer de un consumo de datos más limitado que el de ordenadores, han desactivado la posibilidad de que los vídeos comiencen automáticamente para evitarles sorpresas y gastos innecesarios. Y en el caso de iOS, además, el vídeo ni siquiera se reproduce dentro de la página.</p>
<p>No es que quiera contradecir los filantrópicos principios que han motivado a ambas compañías a tomar tal decisión, pero ya sabéis que hay gente que no soporta bien los límites impuestos. Buscando una solución, encontré el <a href="https://github.com/Stanko/html-canvas-video-player" target="_blank">código de Stanko en GitHub</a> (no, no vende tabaco), que permite reproducir vídeos inline en móviles sobre un elemento <strong>&lt;canvas&gt;</strong>. <strong>Quede claro que todo el mérito es suyo y que yo solo me he limitado a modificar su código para mis propósitos</strong>.</p>
<h5>Que empiece ya, que el público se va</h5>
<p>Ok, vayamos al grano. Como suelen decir, en la vida todo tiene solución. Así que empecemos por el principio y veamos el código estándar para insertar un vídeo con HTML5.</p>
<pre title="video HTML5" lang="html">
<video class="video" poster="img.jpg" autoplay="autoplay" loop="loop" muted="muted">
	<source src="littlegirleyes.webmhd.webm" type="video/webm" />
	<source src="littlegirleyes.mp4" type="video/mp4" />
	<source src="littlegirleyes.oggtheora.ogv" type="video/ogg" />
	Tu navegador no soporta video HTML5.
</video></pre>
<p>Ya que vamos a usarla como fondo, añadiremos a la marca <strong>&lt;video&gt;</strong> los atributos <strong>autoplay</strong>, para que empiece automáticamente, <strong>loop</strong> para que reproduzca en bucle, y <strong>muted</strong> para eliminar el sonido. He puesto el vídeo en los tres formatos estándares para aumentar el número de navegadores alcanzados, si bien, hoy en día la práctica totalidad respondería perfectamente solo con un archivo mp4 <a href="http://caniuse.com/#feat=mpeg4" target="_blank">como puedes ver en caniuse.com</a>. Por ese motivo, una vez mostrado el ejemplo genérico, <strong>a partir de aquí usaré solamente el archivo mp4</strong>.<br />
Añadimos también el atributo <strong>poster</strong> para mostrar una imagen estática mientras el vídeo carga y un poquito de CSS para hacer que el vídeo se adapte al elemento que lo contiene.</p>
<pre title="un poquito de CSS" lang="CSS">video{
  width: 100%;
}
</pre>
<p>Como resultado del código anterior obtenemos el siguiente vídeo.<br />
<video style="width: 100%;" poster="/wp-content/uploads/2016/04/littlegirleyes.jpg" autoplay="autoplay" loop="loop" muted="muted"><source src="/wp-content/uploads/2016/04/littlegirleyes.webmhd.webm" type="video/webm" /><source src="/wp-content/uploads/2016/04/littlegirleyes.mp4" type="video/mp4" /><source src="/wp-content/uploads/2016/04/littlegirleyes.oggtheora.ogv" type="video/ogg" />Tu navegador no soporta video HTML5.</video><br />
Si estás visitando esta página con un ordenador, verás que el vídeo se reproduce automáticamente en bucle. Pero si estás usando un móvil la cosa cambia. En otra ocasión nos ocuparemos de Android. Ahora, como dice el título, <strong>veamos qué pasa en iOS y cómo resolverlo</strong>.</p>
<h5>iOS: ni inline, ni autoplay</h5>
<p>Pues si, una pena. Si nos estás viendo desde un iPhone o un iPad, en lugar de un vídeo en movimiento verás una imagen estática con una marca encima esperando a que la pulses para ponerse en marcha. Y si pulsas sobre ella la cosa empeora. El vídeo no se reproduce en la página, sino que se abre a toda pantalla. Recuerda que nuestro propósito inicial era <strong>usarlo como fondo</strong>, así que este comportamiento, por mucha carita de niña buena que ponga el vídeo, no nos vale.<br />
Afortunadamente, tal como indiqué antes, nuestro amigo Stanko ha creado el estupendo script <a href="https://github.com/Stanko/html-canvas-video-player" target="_blank">HTML canvas video player</a> que <strong>nos permite reproducir un video de forma inline</strong> en un iAparato, y con pequeñas modificaciones conseguiremos que funcione para nuestro propósito.<br />
Su funcionamiento es sencillo, aunque requiere alguna marca más que un vídeo HTML5 estándar. Para empezar colocamos el vídeo, un elemento canvas y un par de div anidados que servirán de barra de tiempo, y lo metemos a su vez en otro div para tenerlo localizado.</p>
<pre title="video HTML5" lang="html">
<div class="video-inline">
  <video class="video" poster="img.jpg" autoplay="autoplay" muted="muted">
	<source src="littlegirleyes.mp4" type="video/mp4" />
	Tu navegador no soporta video HTML5.
  </video>
  <canvas class="canvas"></canvas>
  <div class="video-timeline js-timeline">
	<div class="video-timeline-passed js-timeline-passed"></div>
  </div>
</div>
</pre>
<p>Después cargamos el archivo JavaScript</p>
<pre title="Canvas Video Player" lang="javascript">
	<script src="js/canvas-video-player.js"></script>
</pre>
<p>E insertamos las instrucciones para que funcione</p>
<pre title="Canvas Video Player" lang="javascript">
<script type="text/javascript">
var canvasVideo = new CanvasVideoPlayer({
    videoSelector: '.video',
    canvasSelector: '.canvas',
    timelineSelector: '.js-timeline',
    framesPerSecond: 25,
    autoplay: true,
    audio: false
});
</script>
</pre>
<p>Si lo único que querías era poder <strong>reproducir vídeos inline en iPhones y iPads</strong> puedes bajártelo y obtener más información sobre sus opciones y métodos <a href="http://stanko.github.io/html-canvas-video-player/" target="_blank">aquí</a>.<br />
Pero si lo que quieres es usarlo para poner un vídeo de fondo, necesitará unas pequeñas modificaciones y seguir leyendo un poquito más.</p>
<h5>Un poquito más a fondo</h5>
<p>Como indicaba, nuestro propósito es poder usar el vídeo como fondo, así que hay pequeños detalles que conviene modificar para ajustar el script a nuestras necesidades.<br />
Para empezar, una prestación del script original es hacer que se pare o reanude la reproducción cada vez que se hace click sobre el vídeo. Un comportamiento que no nos viene bien para usar el vídeo como fondo. El script original tampoco permite hacer loops, y es posible que queramos que nuestro fondo sea un bucle perpetuo.<br />
Para añadir estas dos prestaciones he añadido dos nuevas opciones: makeLoop y pauseOnClick</p>
<pre title="Canvas Video Player" lang="javascript">
<script>
		var canvasVideo = new CanvasVideoPlayer({
			videoSelector: '.video',
			canvasSelector: '.canvas',
			timelineSelector: false,
			autoplay: true,
			makeLoop: true,
			pauseOnClick: false,
			audio: false
		});
</script>
</pre>
<p>En esta nueva versión modificada, makeLoop es un valor booleano que permite indicar si queremos que el vídeo se ejecute en bucle. A pauseOnClick puede asignársele el valor false para evitar pausar el vídeo cuando se detecta un click.<br />
Hay que aclarar que, al igual que en la versión inicial, <strong>para que el autoplay funcione es necesario desactivar el audio</strong>. Eso no debería preocuparnos, ya que lo queremos como imagen de fondo.<br />
Por último, recordemos que no hay problemas con ordenadores de escritorio, así que mejor ponemos un condicional que haga que éstos sigan usando el vídeo HTML5 y los iCacharros su versión corriendo sobre canvas. Así, nos quedaría lo siguiente</p>
<pre title="Canvas Video Player" lang="javascript">
<script>
	var isIOS = /iPad|iPhone|iPod/.test(navigator.platform);
	
	if (isIOS) {

		var canvasVideo = new CanvasVideoPlayer({
			videoSelector: '.video',
			canvasSelector: '.canvas',
			timelineSelector: false,
			autoplay: true,
			makeLoop: true,
			pauseOnClick: false,
			audio: false
		});
	}else {
		// Use HTML5 video
		document.querySelectorAll('.canvas')[0].style.display = 'none';
	}	
</script>
</pre>
<h5>¿El fin?</h5>
<p>Bueno, tanto como el fin no. La versión mostrada es mejorable y, por ahora, no plantea qué haremos con Android, algo que dejaremos para otra ocasión. Poniéndolo todo junto, la página nos queda como sigue</p>
<pre title="Canvas Video Player" lang="javascript">
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8" >
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, width=device-width">

	<title>HTML canvas video player</title>

	<link rel="stylesheet" href="styles.css">
</head>

<body>
		<div class="video-responsive">
			<video class="video" muted="muted" loop="loop" autoplay="autoplay">
				<source src="littlegirleyes.mp4" type="video/mp4">
				Your browser does not support HTML5 video.
			</video>

			<canvas class="canvas"></canvas>
			
			<div id="over_video">Look at me</div>
		</div>

	<script src="canvas-video-player.js"></script>


	<script>
	
	var isIOS = /iPad|iPhone|iPod/.test(navigator.platform);
	
	if (isIOS) {
 
		var canvasVideo = new CanvasVideoPlayer({
			videoSelector: '.video',
			canvasSelector: '.canvas',
			timelineSelector: false,
			autoplay: true,
			makeLoop: true,
			pauseOnClick: false,
			audio: false
		});
		
	}else {
		
		// Use HTML5 video
		document.querySelectorAll('.canvas')[0].style.display = 'none';
		
	}	
	
	</script>
</body>
</html>
</pre>
<p><a href="/canvas-video-player" target="_blank">Pulsa aquí</a> para ver en otra ventana el resultado de lo anterior (si tienes uno, puedes mirarlo en tu iPhone), con el <a href="/canvas-video-player/styles.css" target="_blank">CSS</a> correspondiente y <a href="/canvas-video-player/canvas-video-player.js" target="_blank">el script</a> de Stanko modificado.<br />
<strong>También puedes bajártelo todo juntito, con un vídeo de prueba y el script original pulsando aquí</strong></p>
<div style="text-align:center;"><a href="/wp-content/uploads/2016/04/html-canvas-video-player.zip" class="qbutton">DESCARGAR</a></div>

		</div> 
	</div> </div></div></div></div></div>
</div><p>La entrada <a href="https://www.develooping.com/videos-fondo-ios-autoplay/">Vídeos de fondo en iOS (con autoplay)</a> aparece primero en <a href="https://www.develooping.com">Develooping</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
