<?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>Sentido Web &#187; imágenes</title>
	<atom:link href="http://sentidoweb.com/tag/imagenes/feed" rel="self" type="application/rss+xml" />
	<link>http://sentidoweb.com</link>
	<description>Desarrollo web, HTML, CSS, Javascript, PHP, MySQL</description>
	<lastBuildDate>Tue, 10 Apr 2012 01:02:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP Thumbnailer: librería para crear thumbs de imágenes</title>
		<link>http://sentidoweb.com/2011/04/02/php-thumbnailer-libreria-para-crear-thumbs-de-imagenes.php</link>
		<comments>http://sentidoweb.com/2011/04/02/php-thumbnailer-libreria-para-crear-thumbs-de-imagenes.php#comments</comments>
		<pubDate>Sat, 02 Apr 2011 18:38:03 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[gd]]></category>
		<category><![CDATA[imágenes]]></category>
		<category><![CDATA[thumbs]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2706</guid>
		<description><![CDATA[Si hay algo que odio a la hora de desarrollar una aplicación es tener que hacer thumbs de las imágenes, sobre todo para los perfiles: que si el thumb es cuadrado y la imagen rectangular, que si se debe recortar o meter bordes, &#8230; PHP Thumbnailer nos facilita enormemente esta tarea: Hacer resize: try &#123; [...]]]></description>
			<content:encoded><![CDATA[<p>Si hay algo que odio a la hora de desarrollar una aplicación es tener que hacer thumbs de las imágenes, sobre todo para los perfiles: que si el thumb es cuadrado y la imagen rectangular, que si se debe recortar o meter bordes, &#8230; <strong>PHP Thumbnailer</strong> nos facilita enormemente esta tarea:</p>
<p>Hacer resize:</p>
<pre><code><pre class="php">try <span style="color: #66cc66;">&#123;</span>
     <span style="color: #3E6D8F;">$thumb</span> = PhpThumbFactory::<span style="color: #006600;">create</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'/path/to/image.jpg'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span> catch <span style="color: #66cc66;">&#40;</span>Exception <span style="color: #3E6D8F;">$e</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
     <span style="color: #808080; font-style: italic;">// error</span>
<span style="color: #66cc66;">&#125;</span>
<span style="color: #3E6D8F;">$thumb</span>-&gt;<span style="color: #006600;">resize</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">100</span>, <span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #3E6D8F;">$thumb</span>-&gt;<span style="color: #006600;">show</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</pre></code></pre>
<p>Hacer resize y crop si es rectangular:</p>
<pre><code><pre class="php"><span style="color: #3E6D8F;">$thumb</span>-&gt;<span style="color: #006600;">adaptiveResize</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">175</span>, <span style="color: #cc66cc;">175</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #3E6D8F;">$thumb</span>-&gt;<span style="color: #006600;">save</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'/path/to/new_image.jpg'</span><span style="color: #66cc66;">&#41;</span>;</pre></code></pre>
<p><a href="http://phpthumb.gxdlabs.com/">PHP Thumbnailer</a></p>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2011/04/02/php-thumbnailer-libreria-para-crear-thumbs-de-imagenes.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PaintbrushJS – Browser Based Image Processing Library</title>
		<link>http://sentidoweb.com/2010/08/20/paintbrushjs-%e2%80%93-browser-based-image-processing-library.php</link>
		<comments>http://sentidoweb.com/2010/08/20/paintbrushjs-%e2%80%93-browser-based-image-processing-library.php#comments</comments>
		<pubDate>Fri, 20 Aug 2010 07:08:08 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Quicklinks]]></category>
		<category><![CDATA[imágenes]]></category>

		<guid isPermaLink="false">http://www.webappers.com/2010/08/20/paintbrushjs-browser-based-image-processing-library/</guid>
		<description><![CDATA[PaintbrushJS is a lightweight, browser-based image processing library that can apply various visual filters to images within a web page.You use it by applying a class to an element on the page and setting a few parameters with some extra HTML attributes. If the element is an img or it has a background-image set in [...]]]></description>
			<content:encoded><![CDATA[<p>PaintbrushJS is a lightweight, browser-based image processing library that can apply various visual filters to images within a web page.You use it by applying a class to an element on the page and setting a few parameters with some extra HTML attributes. If the element is an img or it has a background-image set in your CSS, PaintbrushJS will create &#8230;</p>
<p><a href="http://www.webappers.com/2010/08/20/paintbrushjs-browser-based-image-processing-library/" title="PaintbrushJS – Browser Based Image Processing Library">Post original</a></p>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/08/20/paintbrushjs-%e2%80%93-browser-based-image-processing-library.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Laboratorio: leer cualquier tipo de imágen en PHP de forma sencilla</title>
		<link>http://sentidoweb.com/2010/02/01/laboratorio-leer-cualquier-tipo-de-imagen-en-php-de-forma-sencilla.php</link>
		<comments>http://sentidoweb.com/2010/02/01/laboratorio-leer-cualquier-tipo-de-imagen-en-php-de-forma-sencilla.php#comments</comments>
		<pubDate>Mon, 01 Feb 2010 14:01:58 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Quicklinks]]></category>
		<category><![CDATA[gd]]></category>
		<category><![CDATA[imágenes]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2152</guid>
		<description><![CDATA[Uno de los problemas con los que nos solemos encontrar es leer imágenes en PHP mediante la librería GD sin estar seguros de que tipo de fichero es: JPEG, GIF o PNG. Normalmente solemos mirar la extensión y según sea, abrir el fichero con alguno de los métodos que ofrece GD. Pero hay una solución [...]]]></description>
			<content:encoded><![CDATA[<p>Uno de los problemas con los que nos solemos encontrar es leer imágenes en PHP mediante la librería GD sin estar seguros de que tipo de fichero es: JPEG, GIF o PNG. Normalmente solemos mirar la extensión y según sea, abrir el fichero con alguno de los métodos que ofrece GD. Pero hay una solución más sencilla: leer el fichero en un string y crear la imagen usando ese script:<p>
<pre><code><pre class="php"><span style="color: #3E6D8F;">$img_content</span> = <a href="http://www.php.net/file_get_contents"><span style="color: #000066;">file_get_contents</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$image</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #3E6D8F;">$im</span> = imagecreatefromstring<span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$img_content</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #808080; font-style: italic;">// Para saber el tipo de imagen por si lo necesitamos</span>
<span style="color: #3E6D8F;">$imgtype</span> = <a href="http://www.php.net/exif_imagetype"><span style="color: #000066;">exif_imagetype</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #3E6D8F;">$image</span><span style="color: #66cc66;">&#41;</span>;</pre></code></pre>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/02/01/laboratorio-leer-cualquier-tipo-de-imagen-en-php-de-forma-sencilla.php/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Librerías Javascript para mostrar información de imagenes y añadir efectos</title>
		<link>http://sentidoweb.com/2009/04/20/librerias-javascript-para-mostrar-informacion-de-imagenes-y-anadir-efectos.php</link>
		<comments>http://sentidoweb.com/2009/04/20/librerias-javascript-para-mostrar-informacion-de-imagenes-y-anadir-efectos.php#comments</comments>
		<pubDate>Mon, 20 Apr 2009 19:00:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[efectos]]></category>
		<category><![CDATA[exif]]></category>
		<category><![CDATA[imágenes]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2009/04/20/librerias-javascript-para-mostrar-informacion-de-imagenes-y-anadir-efectos.php</guid>
		<description><![CDATA[Dos interesantes y currados scripts que te permiten manipular imágenes. Uno de ellos te devuelve la información EXIF de la imágen: formato, versión, ancho, alto, bits por pixel, alpha, mimeType, tamaño en bytes e información EXIF (solo para JPEG). La otra librería Javascript te permite realizar efectos en las imágenes, usando canvas o lo propio [...]]]></description>
			<content:encoded><![CDATA[Dos interesantes y currados scripts que te permiten manipular imágenes. Uno de ellos te devuelve la información EXIF de la imágen: formato, versión, ancho, alto, bits por pixel, alpha, mimeType, tamaño en bytes e información EXIF (solo para JPEG).
La otra librería Javascript te permite realizar efectos en las imágenes, usando canvas o lo propio de IE (no todos los efectos los permite IE): flip horizontal, flip vertical, invertir, desaturacización, blur, sharpen, edges, emboss, laplace, ruido, brillo, sepia e histograma.
Librerías muy interesantes para proyectos que permitan subir o manipular imágenes (tipo fotolog).
<a href="http://www.nihilogic.dk/labs/imagefx/">Javascript Image Effects</a> e <a href="http://blog.nihilogic.dk/2008/08/imageinfo-reading-image-metadata-with.html">ImageInfo</a>
Vía / <a href="http://youare.com/rafabayona/2009/04/19/902702">@rafabayona</a>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2009/04/20/librerias-javascript-para-mostrar-informacion-de-imagenes-y-anadir-efectos.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>boingPic: experimento con imágenes y jQuery</title>
		<link>http://sentidoweb.com/2009/03/30/boingpic-experimento-con-imagenes-y-jquery.php</link>
		<comments>http://sentidoweb.com/2009/03/30/boingpic-experimento-con-imagenes-y-jquery.php#comments</comments>
		<pubDate>Mon, 30 Mar 2009 16:30:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[imágenes]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2009/03/30/boingpic-experimento-con-imagenes-y-jquery.php</guid>
		<description><![CDATA[boingPic es un experimento realizado con jQuery que divide una imagen en 100 cuadritos y hace que &#8220;huyan&#8221; del ratón cuando éste se mueve. El script no tiene mucha utilidad en si, pero sí que puede ser interesante para tomar ideas para otros desarrollos, sobre todo a la hora de dividir la imágen y controlar [...]]]></description>
			<content:encoded><![CDATA[<strong>boingPic</strong> es un experimento realizado con jQuery que divide una imagen en 100 cuadritos y hace que &#8220;huyan&#8221; del ratón cuando éste se mueve.
<img alt="boingpic.png" src="http://sentidoweb.com/img/2009/03/boingpic.png" width="275" height="242" class="center" />
El script no tiene mucha utilidad en si, pero sí que puede ser interesante para tomar ideas para otros desarrollos, sobre todo a la hora de dividir la imágen y controlar su movimiento.
<a href="http://www.kelvinluck.com/assets/jquery/boingPic/index.html">boingPic</a>
Vía / <a href="http://youare.com/couch/2009/03/28/671267">couch</a>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2009/03/30/boingpic-experimento-con-imagenes-y-jquery.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5 consejos para reducir la carga de la página enfocado a imágenes</title>
		<link>http://sentidoweb.com/2008/07/09/5-consejos-para-reducir-la-carga-de-la-pagina-enfocado-a-imagenes.php</link>
		<comments>http://sentidoweb.com/2008/07/09/5-consejos-para-reducir-la-carga-de-la-pagina-enfocado-a-imagenes.php#comments</comments>
		<pubDate>Wed, 09 Jul 2008 18:00:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Desarrollo web]]></category>
		<category><![CDATA[imágenes]]></category>
		<category><![CDATA[rendimiento]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2008/07/09/5-consejos-para-reducir-la-carga-de-la-pagina-enfocado-a-imagenes.php</guid>
		<description><![CDATA[Una cosa es realizar una aplicación o tener un blog y otra es que el número de visitas aumenten y tengamos que optimizar la carga de la página. Hay que intentar ganar rendimiento de cualquier forma, y una de estas formas es mediante imágenes, por eso estos consejos (que quizás sean un poco obvios) no [...]]]></description>
			<content:encoded><![CDATA[<p>Una cosa es realizar una aplicación o tener un blog y otra es que el número de visitas aumenten y tengamos que optimizar la carga de la página. Hay que intentar ganar rendimiento de cualquier forma, y una de estas formas es mediante imágenes, por eso estos consejos (que quizás sean un poco obvios) no vienen mal:</p>
<ul><li><strong>Evita usar imágenes complejas o grandes</strong>: cuanto más ligeras sean antes cargarán.</li>
<li><strong>Optimiza las imágenes</strong>: existe diferentes formatos, y cada cual es conveniente en un caso. Los más usados son GIF, PNG y JPEG. JPEG y  PNG tienen un valor de calidad de la imagen, reducirlo puede hacernos ganar algunos Kb y no perder en calidad.</li>
<li><strong>Indica el tamaño de las imágenes en el HTML</strong>: así el navegador sabrá como repartir el espacio para la imagen antes de que cargue por lo que el render de la página será más rápido.</li>
<li><strong>Precarga imágenes</strong>: aquí el autor dice un consejo un tanto peculiar, no sé si bueno o malo, pero sí interesante. Se trata de cargar imágenes grandes en páginas anteriores y asignarle el tamaño 1&#215;1 para que no se vean y así esté cargada anteriormente. Eso sí, forzaría a que tire de caché para que no te la cargue dos veces.</li>
<li><strong>Animaciones flash</strong>: si tienes que usar una animación no uses GIFs animados (sí, algunos te encuentras aún), usa flash, pero tampoco te pases.</li></ul>
<p><a href="http://www.codeitred.com/2008/07/07/top-5-tips-decrease-load-time-websites-images">Top 5 tips to decrease the load time of your websites via images</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2008/07/09/5-consejos-para-reducir-la-carga-de-la-pagina-enfocado-a-imagenes.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PicFindr: encuentra fotos gratuitas</title>
		<link>http://sentidoweb.com/2007/03/21/picfindr-encuentra-fotos-gratuitas.php</link>
		<comments>http://sentidoweb.com/2007/03/21/picfindr-encuentra-fotos-gratuitas.php#comments</comments>
		<pubDate>Wed, 21 Mar 2007 18:45:30 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Buscadores]]></category>
		<category><![CDATA[imagenes gratuitas creative commons]]></category>
		<category><![CDATA[imágenes]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2007/03/21/picfindr-encuentra-fotos-gratuitas.php</guid>
		<description><![CDATA[PicFindr es un servicio que nos permite buscar imágenes gratuitas dentro de todos los sistemas de licencias existentes y teniendo en cuenta el uso que necesitemos. Nos permite buscar imágenes gratuitas para usarlas de forma comercial sin necesidad de pedir permiso o pagar algún crédito. PicFindr se trata de una aplicación realizada en Flash9 que [...]]]></description>
			<content:encoded><![CDATA[<img alt="picfindr.png" src="http://sentidoweb.com/img/2007/03/picfindr.png" width="170" height="71" class="right"/><strong>PicFindr</strong> es un servicio que nos permite buscar imágenes gratuitas dentro de todos los sistemas de licencias existentes y teniendo en cuenta el uso que necesitemos.
Nos permite buscar imágenes gratuitas para usarlas de forma comercial sin necesidad de pedir permiso o pagar algún crédito.
PicFindr se trata de una aplicación realizada en Flash9 que busca dentro de diferentes sitios de almacenamiento de fotografías y nos permite descargarlas. Entre los sitios en los que busca se encuentra <a href="http://www.sxc.hu">stock.xchng</a>, <a href="http://imageafter.com">image*after</a> o <a href="http://morguefile.com">morgeFile</a>.
<a href="http://www.picfindr.com">PicFindr</a>
Vía / <a href="http://www.sitepoint.com/blogs/2007/03/21/picfindr-free-stock-photo-and-image-search/">SitePoint Blogs</a>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2007/03/21/picfindr-encuentra-fotos-gratuitas.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lista de librerías de manipulación de imágenes en PHP</title>
		<link>http://sentidoweb.com/2006/11/02/lista-de-librerias-de-manipulacion-de-imagenes-en-php.php</link>
		<comments>http://sentidoweb.com/2006/11/02/lista-de-librerias-de-manipulacion-de-imagenes-en-php.php#comments</comments>
		<pubDate>Thu, 02 Nov 2006 23:00:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[gd]]></category>
		<category><![CDATA[imágenes]]></category>
		<category><![CDATA[php gd manipulacion imagenes]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2006/11/02/lista-de-librerias-de-manipulacion-de-imagenes-en-php.php</guid>
		<description><![CDATA[Según la Ley del Mínimo Esfuerzo, no hagas lo que ya han hecho otros, y en este caso, si estás interesado en manipulación de imágenes mediante PHP, te puede interesar esta lista de librerías o scripts para la manipulación de imagenes mediante PHP. GD image resize transparent gif: script para cambiar el tamaño de un [...]]]></description>
			<content:encoded><![CDATA[<p>Según la Ley del Mínimo Esfuerzo, no hagas lo que ya han hecho otros, y en este caso, si estás interesado en manipulación de imágenes mediante PHP, te puede interesar esta lista de librerías o scripts para la manipulación de imagenes mediante PHP.</p>
<ul><li><a href="http://forums.devshed.com/php-development-5/gd-image-resize-transparent-gif-337812.html">GD image resize transparent gif</a>: script para cambiar el tamaño de un GIF transparente usando GD.</li>
<li><a href="http://forums.digitalpoint.com/showthread.php?p=329317">Image Thumb</a>: crear miniaturas (thumbnails).</li>
<li><a href="http://phpthumb.sourceforge.net/">phpThumb()</a>: permite crear miniaturas de nuestras imágenes, exportando a distintos formatos y pudiendo aplicar diversos filtros.</li>
<li><a href="http://www.makko.com.mx/gdgraph/">GDGraph</a>: crea gráficas de barra, pastel.</li>
<li><a href="http://www.panacode.com/panachart/">PanaChart</a>: gráficas en menos de 2 Kb. y en menos de 20 ms.</li>
<li><a href="http://thedreaming.com/index.php?option=com_content&#038;task=view&#038;id=43&#038;Itemid=50">OIC</a>: conversor de formatos de imágenes.</li>
<li><a href="http://www.phrozensmoke.com/projects/phpaint/">PHPaint</a>: crea botones dinámicamente.</li>
<li><a href="http://graphpico.sourceforge.net/">GraPHPico</a>: genera graficos en formato .PNG, actualmente existen los estilos Porcentaje, Barras y Pastel.</li>
<li><a href="http://www.washeebo.com/sargento/03_php/0322/0322.php">GD- Sombras</a>: crea textos con sombras.</li>
<li><a href="http://www.aditus.nu/jpgraph/index.php">JpGraph</a>: completísima utilidad para la creación de gráficos.</li>
<li><a href="http://www.phpgd.com">PHPGD</a>: recursos para la manipulación y creación de imágenes con PHP y GD.</li>
<li><a href="http://vikjavev.no/computing/ump.php">Unsharp Mask for PHP</a>: máscara unsharp para imágenes.</li>
<li><a href="http://www.phplot.com/" rel="nofollow">PHPLOT</a>: una &#8216;biblioteca&#8217; para generar todos tipo de gráficos sobre estadísticas varias. (Gracias <a href="http://alidhaey.blogspot.com">alidhaey</a>)</li>
</ul>
<h3>En Sentido Web</h3>
<ul><li><a href="http://sentidoweb.com/2006/05/03/laboratorio-aaadir-tatulo-a-la-cabecera-usando-php-y-filtros.php">Laboratorio: añadir título a la cabecera usando PHP y filtros</a></li>
<li><a href="http://sentidoweb.com/2006/04/11/laboratorio-recorta-imagenes-dinamicamente-con-php-y-html.php">Laboratorio: Recorta imágenes dinámicamente con PHP y HTML</a></li></ul>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2006/11/02/lista-de-librerias-de-manipulacion-de-imagenes-en-php.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Laboratorio: calcular fondo de imagen con PHP</title>
		<link>http://sentidoweb.com/2006/06/09/laboratorio-calcular-fondo-de-imagen-con-php.php</link>
		<comments>http://sentidoweb.com/2006/06/09/laboratorio-calcular-fondo-de-imagen-con-php.php#comments</comments>
		<pubDate>Sat, 10 Jun 2006 00:45:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[Laboratorio]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[background]]></category>
		<category><![CDATA[imágenes]]></category>
		<category><![CDATA[php background para imagenes]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2006/06/09/laboratorio-calcular-fondo-de-imagen-con-php.php</guid>
		<description><![CDATA[Hace tiempo contábamos como rotar imágenes aleatoriamente, algo que se puede utilizar para la cabecera del blog (como hace mucha gente). El problema es cuando las imágenes son completamente distintas y hay que buscar un fondo que le convenga. Para ello nada mejor que un script PHP que te calcule el fondo según los colores [...]]]></description>
			<content:encoded><![CDATA[<p>Hace tiempo contábamos como <a href="http://sentidoweb.com/2006/04/05/rotar-imagenes-aleatoriamente.php">rotar imágenes aleatoriamente</a>, algo que se puede utilizar para la cabecera del blog (como hace mucha gente). El problema es cuando las imágenes son completamente distintas y hay que buscar un fondo que le convenga. Para ello nada mejor que un script PHP que te calcule el fondo según los colores de la imagen, ya sea calculando la media o la mediana (el que más aparece). Como veréis en el ejemplo, la media (arriba) y la mediana (abajo) devuelven valores distintos.
<img alt="backgrounds.png" src="http://sentidoweb.com/img/2006/06/backgrounds.png" width="261" height="403" class="center"/></p>

<span id="more-286"></span>
<p>Primero declararemos variables y cargaremos la imagen.</p>
<pre><code>// url de la imagen
$imagen = $_GET["imagen"];
// media = 1; mediana = 0
$media = $_GET["media"];
// Cargamos la imagen y calculamos el ancho y el alto
$im = imagecreatefromjpeg (getcwd().'/'.$imagen.'.jpg');
$ancho = imagesx($im);
$alto = imagesy($im);
// Definicion de variables
$color = ""; // variable auxilar
$r = 0;  // para sumar los componentes R (rojo)
$g = 0;  // para sumar los componentes G (verde)
$b = 0;  // para sumar los componentes B (azul)
// un array que guarda los valores para la mediana
$mediana = array();
// Valor por defecto
$RGB = "FFFFFF";</code></pre>
<p>El array <em>$mediana</em> tendrá como clave los colores de la imagen y como valor el número de veces que aparece en la imagen.</p>
<p>El siguiente paso es leer los colores para ir calculando la media y la mediana, para la media voy sumando los componentes RGB y para la mediana cuento las veces que aparece un color.</p>
<pre><code>// Leemos los colores y almacenamos tanto para la media como para la mediana
for ($i = 0; $i<$ancho; $i++) {
for ($j = 0; $j<$alto; $j++) {
// obtengo el color
$color = imagecolorat($im, $i, $j);
// Calculo componentes RGB
$raux = ($color >> 16) &#038; 0xFF;
$gaux = ($color >> <img src='http://sentidoweb.com/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> &#038; 0xFF;
$baux = $color &#038; 0xFF;
// Sumo valores para la media
$r += $raux;
$g += $gaux;
$b += $baux;
// Añado valor para la mediana
$rgb = ((strlen(dechex($raux))==1)? "0":"") . dechex($raux) .
((strlen(dechex($gaux))==1)? "0":"") . dechex($gaux) .
((strlen(dechex($baux))==1)? "0":"") . dechex($baux);
$mediana[$rgb] = $mediana[$rgb]+1;
}
}</code></pre>
<p>Y por último calculamos la media o la mediana, según hayamos elegido.</p>
<pre><code>if (isset($media) &#038;&#038; $media == '1') {
// Es media
// Calculo la media
$r = $r / ($ancho*$alto);
$g = $g / ($ancho*$alto);
$b = $b / ($ancho*$alto);
// Lo paso a notacion hexadecimal
$RGB = ((strlen(dechex($r))==1)? "0":"") . dechex($r) .
((strlen(dechex($g))==1)? "0":"") . dechex($g) .
((strlen(dechex($b))==1)? "0":"") . dechex($b);
} else {
// Es mediana
$val = 0;
// Reordeno la tabla
asort($mediana);
// Veo cual es el que más se repite
foreach ($mediana as $clave => $valor) {
if (max($valor, $val)) {
$RGB = $clave;
}
}
}</pre><code>
<p>Te puedes bajar un ejemplo <a href="http://sentidoweb.com/img/2006/06/background.zip">aquí</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2006/06/09/laboratorio-calcular-fondo-de-imagen-con-php.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Laboratorio: Comparar imágenes mediante PHP</title>
		<link>http://sentidoweb.com/2006/04/18/laboratorio-comparar-imagenes-mediante-php.php</link>
		<comments>http://sentidoweb.com/2006/04/18/laboratorio-comparar-imagenes-mediante-php.php#comments</comments>
		<pubDate>Tue, 18 Apr 2006 23:45:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[Laboratorio]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[imágenes]]></category>
		<category><![CDATA[laboratorio imágenes]]></category>
		<category><![CDATA[laboratorio php]]></category>
		<category><![CDATA[php comparar imágenes]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2006/04/18/laboratorio-comparar-imagenes-mediante-php.php</guid>
		<description><![CDATA[Voy a intentar responder de una forma un poco más completa la pregunta que nos hacía David sobre la forma de comparar dos imágenes. Aunque este tema es muy intenso y en algunos casos bastante complicado, vamos a intentar simplificarlo en dos casos: imágenes de distinto tamaño y distinto contenido en la imagen. Si las [...]]]></description>
			<content:encoded><![CDATA[<p>Voy a intentar responder de una forma un poco más completa la <a href="http://sentidoweb.com/2006/04/11/laboratorio-recorta-imagenes-dinamicamente-con-php-y-html.php#comentario_282">pregunta</a> que nos hacía David sobre la forma de comparar dos imágenes. Aunque este tema es muy intenso y en algunos <a href="http://www.riya.com/">casos</a> bastante complicado, vamos a intentar simplificarlo en <a href="http://sentidoweb.com/lab/comparar/php/comparar.html">dos casos</a>: imágenes de distinto tamaño y distinto contenido en la imagen.</p>
<p><a href="http://sentidoweb.com/lab/comparar/php/comparar.html"><img alt="Comparar imágenes" src="http://sentidoweb.com/img/2006/04/comparar-imagenes.png" width="354" height="199" class="center"/></a></p>
<p>Si las imágenes son de distinto tamaño diremos que son distintas imágenes, no nos pararemos a ver el contenido. Si tienen el mismo tamaño, buscaremos que parte de la imagen es la que ha cambiado y la señalaremos con un rectángulo rojo.</p>

<span id="more-141"></span>
<p>El funcionamiento del script es sencillo:</p>
<ul><li>Primero recibimos las dos imágenes (en este caso ambas son PNG para facilitar el script), si la imagen seleccionada no se ha elegido, se devuelve la imagen original (esto es solo para evitar dar un error).</li>
<li>Se cargan las dos imágenes.</li>
<li>Si las imágenes tienen distinto tamaño se devuelve una imagen del tamaño de la original con un texto que indica que son de distinto tamaño.</li>
<li>Si las imágenes tienen el mismo tamaño se comprueba el contenido de ambas, se van recorriendo ambas imágenes punto a punto (usando coordenadas x e y) comprobando el color rgb de ambas.</li>
<li>Si no ha habido diferencias entre las imágenes se devuelve una imagen del tamaño de la original con un texto que indica que son la misma imagen.</li>
<li>Cuando se encuentra un punto con distinto color en las dos imágenes, se comprueba si el punto es el que tiene menor X o menor Y encontrado y si es así nos quedamos con la coordenada X o Y menor, igual para el punto mayor. Así lo que conseguimos es el recuadro que enmarca todos los puntos diferentes entre ambas imágenes. Cuando hemos acabado de recorrer las imágenes, devolvemos la imagen seleccionada con el recuadro dibujado.</li></ul>
<pre><code>&lt;?php
// Cargamos las imágenes
$origen = $_GET["img1"];
$destino = $_GET["img2"];
$im1 = imagecreatefrompng (getcwd()."/".$origen);
if (!$destino) {
header("Content-type: image/png");
imagepng($im1);
} else {
$im2 = imagecreatefrompng (getcwd()."/".$destino);
// Creamos la imagen resultante
$im3 = imagecreate(ImageSX($im1), ImageSY($im1));
if (ImageSX($im1) == ImageSX($im2) &#038;&#038; ImageSY($im1) == ImageSY($im2)) {
// Tienen el mismo tamaño
$rojo = imagecolorallocate($im3, 255, 0, 0);
// Compruebo la zona que tiene distintos pixels
$xmin = ImageSX($im1);
$xmax = 0;
$ymin = ImageSY($im1);
$ymax = 0;
$ok = false;
for ($j= 0; $j&lt;ImageSY($im1); $j++) {
for ($i= 0; $i&lt;ImageSX($im1); $i++) {
$rgb1 = imagecolorat($im1, $i, $j);
$rgb2 = imagecolorat($im2, $i, $j);
if ($rgb1 != $rgb2) {
$ok = true;
$xmin = ($i &lt; $xmin)? $i : $xmin;
$ymin = ($j &lt; $ymin)? $j : $ymin;
$xmax = ($i &gt; $xmax)? $i : $xmax;
$ymax = ($j &gt; $ymax)? $j : $ymax;
}
}
}
if (!$ok) {
// Son iguales
$negro = imagecolorallocate($im3, 0, 0, 0);
imagestring($im3, 10, 5, 5, "Son iguales", $negro);
} else {
// Son distintas
// Copio la imagen 2 sobre la resultante
imagecopy($im3, $im2, 0, 0, 0, 0, ImageSX($im2), ImageSY($im2));
// Señalo donde difieren
imagerectangle($im3, $xmin, $ymin, $xmax, $ymax, $rojo);
}
} else {
$rojo = imagecolorallocate($im3, 255, 0, 0);
$negro = imagecolorallocate($im3, 0, 0, 0);
imagestring($im3, 10, 5, 5, "Distinto ancho y alto", $negro);
}
/* Devolvemos la imagen */
header("Content-type: image/png");
imagepng($im3);
}
?&gt;</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2006/04/18/laboratorio-comparar-imagenes-mediante-php.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

