<?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>PHPBSD.net &#187; imágenes</title>
	<atom:link href="http://www.phpbsd.net/tag/imagenes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phpbsd.net</link>
	<description>Blogueando sobre PHP, BSD, SEO, AJAX, Seguridad, Rendimiento... y mucho más</description>
	<lastBuildDate>Thu, 07 Oct 2010 11:57:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Herramientas gráficas online</title>
		<link>http://www.phpbsd.net/2007/05/30/herramientas-graficas-online/</link>
		<comments>http://www.phpbsd.net/2007/05/30/herramientas-graficas-online/#comments</comments>
		<pubDate>Wed, 30 May 2007 14:13:16 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Notas]]></category>
		<category><![CDATA[diseño]]></category>
		<category><![CDATA[herramientas]]></category>
		<category><![CDATA[imágenes]]></category>
		<category><![CDATA[webmaster]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/2007/05/30/herramientas-graficas-online/</guid>
		<description><![CDATA[Hace unos días descubría My Cool Button gracias a Digital Inspiration y me hizo recordar algunas herramientas relacionadas que de vez en cuando he usado. Si eres programador PHP y no muy diseñador te irán de perlas:

Generador de botones 80&#215;15. En el mismo graphicsguru.com se ofrecen varias herramientas útiles.
Generador de Favicon con texto. Para generar [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/03/15/creando-imagenes-on-the-fly-con-las-gd-en-php/' rel='bookmark' title='Permanent Link: Creando imágenes on-the-fly con las GD en PHP'>Creando imágenes on-the-fly con las GD en PHP</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p>Hace unos días descubría <a target="_blank" href="http://www.mycoolbutton.com/" title="Web 2.0 free buttons maker! - The program (Photoshop, hosting php-gd2)">My Cool Button</a> gracias a <a target="_blank" href="http://labnol.blogspot.com/2007/05/create-web-20-buttons-online-without.html" title="Create Web 2.0 Buttons Online Without Photoshop at Digital Inspiration Technology Guide">Digital Inspiration</a> y me hizo recordar algunas herramientas relacionadas que de vez en cuando he usado. Si eres programador PHP y no muy diseñador te irán de perlas:</p>
<ul>
<li><a target="_blank" href="http://www.graphicsguru.com/button.php" title="FREE button generator 80x15 antipixel blog badges graphicsguru passion for pixels">Generador de botones 80&#215;15</a>. En el mismo graphicsguru.com se ofrecen varias herramientas útiles.</li>
<li><a target="_blank" href="http://antifavicon.com/" title="Favicon Generator">Generador de Favicon con texto</a>. Para generar favicions sin imágenes, sólo texto y combinaciones de colores.</li>
<li><a target="_blank" href="http://www.roundedcornr.com/" title="RoundedCornr: Rounded Corner and Gradient Generator">Generador de bordes redondeados y gradientes</a>. Pues eso, para generar cajas con bordes redondeados y gradientes. Lo interesante es que ya te ofrece el código HTML y las imágenes necesarias recortadas.</li>
<li><a target="_blank" href="http://www.malevole.com/mv/misc/text/" title="malevole - Text Generator">Generador de Textos</a>. Estás cansado del clásico LoremIpsum. Pues aquí tienes un generador de textos aleatorios pero con algo de &#8220;sentido&#8221;.</li>
<li><a target="_blank" href="http://services.nexodyne.com/email/" title="E-Mail Icon Generator">Generador de email</a>. Para evitar el spam un generador de imágenes con tu dirección de correo.</li>
<li><a target="_blank" href="http://www.degraeve.com/color-palette/index.php" title="Color Palette Generator">Generador de paletas de colores</a>. A partir de una foto te genera una paleta de colores.</li>
<li>&#8230;y como no el clásico <a target="_blank" href="http://cooltext.com/" title="Cool Text: Logo and Graphics Generator">CoolText</a>. de la época web 1.0 :) pero todavía muy útil.</li>
</ul>
<p>Googleando encuentras cientos de webs con herramientas similares, lo anterior sólo es una selección de las que me he ido guardando en mi delicious&#8230; ¿conoces más q consideras &#8220;imprescindibles&#8221;?</p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/03/15/creando-imagenes-on-the-fly-con-las-gd-en-php/' rel='bookmark' title='Permanent Link: Creando imágenes on-the-fly con las GD en PHP'>Creando imágenes on-the-fly con las GD en PHP</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2007/05/30/herramientas-graficas-online/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Creando imágenes on-the-fly con las GD en PHP</title>
		<link>http://www.phpbsd.net/2007/03/15/creando-imagenes-on-the-fly-con-las-gd-en-php/</link>
		<comments>http://www.phpbsd.net/2007/03/15/creando-imagenes-on-the-fly-con-las-gd-en-php/#comments</comments>
		<pubDate>Thu, 15 Mar 2007 03:12:39 +0000</pubDate>
		<dc:creator>Oriol</dc:creator>
				<category><![CDATA[Artículos]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[gd]]></category>
		<category><![CDATA[imágenes]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[webmaster]]></category>

		<guid isPermaLink="false">http://www.phpbsd.net/2007/03/15/creando-imagenes-on-the-fly-con-las-gd-en-php/</guid>
		<description><![CDATA[GD es una librería de código abierto para la creación dinámica de imágenes. GD está escrita en C aunque puede ser usada desde varios lenguajes de programación entre ellos, como no, nuestro querido PHP.
A continuación describo como generar imágenes GIF "on the fly" usando PHP. Se puede usar este código para generar botones bajo demanda [...]


Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/01/28/usando-mod_rewrite-y-feedburner-para-las-feeds-de-un-blog-con-wordpress/' rel='bookmark' title='Permanent Link: Usando mod_rewrite y FeedBurner para las feeds de un blog con WordPress'>Usando mod_rewrite y FeedBurner para las feeds de un blog con WordPress</a></li><li><a href='http://www.phpbsd.net/2007/02/09/leyendo-xml-desde-php-con-simplexml/' rel='bookmark' title='Permanent Link: Leyendo XML desde PHP con SimpleXML'>Leyendo XML desde PHP con SimpleXML</a></li><li><a href='http://www.phpbsd.net/2007/05/02/cache-en-memoria-compartida-con-apc/' rel='bookmark' title='Permanent Link: Cache en memoria compartida con APC'>Cache en memoria compartida con APC</a></li></ul>]]></description>
			<content:encoded><![CDATA[<p><a target="_blank" href="http://www.boutell.com/gd/" title="GD Graphics Library">GD</a> es una librería de código abierto para la <strong>creación dinámica de imágenes</strong>. GD está escrita en C aunque puede ser usada desde varios lenguajes de programación entre ellos, como no, nuestro querido PHP.</p>
<p>A continuación describo como generar imágenes <a target="_blank" href="http://es.wikipedia.org/wiki/Gif" title="Graphics Interchange Format - Wikipedia, la enciclopedia libre">GIF</a> "on the fly" usando PHP. Se puede usar este código para generar botones bajo demanda lo que resulta muy útil en distintas ocasiones, por ejemplo en webs que pretender ser traducidas a varios idiomas.</p>
<div class="syntax_hilite">
<div id="php-3">
<div class="php"><span style="color:#000000; font-weight:bold;">function</span> genera_boton<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$text</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span><br />
&nbsp; <a href="http://www.php.net/header"><span style="color:#000066;">header</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"Content-type: image/gif"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; <span style="color:#0000FF;">$font</span> = <span style="color:#FF0000;">'../fonts/ARIALNB.TTF'</span>;<br />
&nbsp; <span style="color:#0000FF;">$fontsize</span> = <span style="color:#CC66CC;">11</span>;<br />
&nbsp; <span style="color:#0000FF;">$ycoord</span> = <span style="color:#CC66CC;">17</span>;<br />
&nbsp; <span style="color:#0000FF;">$imgheight</span> = <span style="color:#CC66CC;">22</span>;<br />
&nbsp; <span style="color:#0000FF;">$xpad</span> = <span style="color:#CC66CC;">40</span>;<br />
&nbsp; <span style="color:#0000FF;">$details</span> = imageftbbox<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$fontsize</span>, <span style="color:#CC66CC;">0</span>, <span style="color:#0000FF;">$font</span>, <span style="color:#0000FF;">$text</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; <span style="color:#0000FF;">$imgwidth</span> = <a href="http://www.php.net/abs"><span style="color:#000066;">abs</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$details</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC66CC;">2</span><span style="color:#006600; font-weight:bold;">&#93;</span> - <span style="color:#0000FF;">$details</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC66CC;">0</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span> + <span style="color:#0000FF;">$xpad</span>;<br />
&nbsp; <span style="color:#0000FF;">$xcoord</span> = <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$imgwidth</span> - <span style="color:#0000FF;">$details</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC66CC;">4</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span> / <span style="color:#CC66CC;">2</span>;<br />
&nbsp; <span style="color:#0000FF;">$im</span> = @imagecreate<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$imgwidth</span>, <span style="color:#0000FF;">$imgheight</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
&nbsp; &nbsp; or <a href="http://www.php.net/die"><span style="color:#000066;">die</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'error generando la imagen'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; <span style="color:#0000FF;">$background_color</span> = imagecolorallocate<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$im</span>, <span style="color:#CC66CC;">0</span>, <span style="color:#CC66CC;">0</span>, <span style="color:#CC66CC;">128</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; <span style="color:#0000FF;">$text_color</span> = imagecolorallocate<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$im</span>, <span style="color:#CC66CC;">255</span>, <span style="color:#CC66CC;">255</span>, <span style="color:#CC66CC;">255</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; imagettftext<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$im</span>,<span style="color:#0000FF;">$fontsize</span>,<span style="color:#CC66CC;">0</span>,<span style="color:#0000FF;">$xcoord</span>,<span style="color:#0000FF;">$ycoord</span>,<span style="color:#0000FF;">$text_color</span>,<span style="color:#0000FF;">$font</span>,<span style="color:#0000FF;">$text</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; imagegif<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$im</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
&nbsp; imagedestroy<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$im</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<span style="color:#006600; font-weight:bold;">&#125;</span><br />
genera_boton<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'HOLA MUNDO'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</div>
</div>
<p></p>
<p>La imagen generada es muy simple y sólo debería servir de ejemplo, aunque con pocos retoques se puede conseguir algo mucho más bonito. La función genera un rectángulo azul con el texto <em>$text</em> centrado, se usa la fuente TrueType ARIALNB.TTF (disponible en cualquier Güindows).</p>
<p>Mediante la información devuelta por <a target="_blank" href="http://www.php.net/manual/en/function.imagettfbbox.php" title="PHP: imagettfbbox - Manual">imageftbbox()</a> se centra el texto automáticamente pero la altura de la imagen y la posición vertical del texto se fijan manualmente. Esto es así ya que si calculamos estos valores (<em>$imgheight</em> y <em>$ycoord</em>) pueden variar de forma no deseada dependiendo de la fuente usada y del texto que queremos mostrar, por ejemplo con el uso de acentos, mayúsculas o eñes obtendríamos imágenes con una altura mayor... y normalmente uno quiere que todos los botones tengan la misma altura :)</p>
<p>Si usas otra fuente o tamaño de fuente tendrás que ajustar los valores <em>$ycoord</em> e <em>$imgheight</em>. Probablemente también quieras ajustar <em>$xpad</em> que es lo que fija los márgenes izquierdo y derecho entre el texto y el borde de la imagen.</p>
<p>Paso a tratar un tema habitual en este blog, el <strong>rendimiento</strong>. Es muy interesante utilizar algún tipo de <strong>cache</strong> de los botones generados, a continuación propongo un par de ideas de cache (cliente y servidor):</p>
<p><strong>[1]</strong> Usando el segundo parámetro de <a target="_blank" href="http://www.php.net/manual/en/function.imagegif.php" title="PHP: imagegif - Manual">imagegif()</a> <strong>guardar en disco el archivo</strong> GIF. Entonces podemos tirar de <em>is_file()</em> para comprobar si ya disponemos del GIF generado que con un simple <em>file_get_contents()</em> podremos recuperar. Aunque es mucho más óptimo configurar reglas de <a target="_blank" href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html" title="mod_rewrite - Apache HTTP Server">mod_rewrite</a> del Apache para devolver el GIF directamente en caso de que exista el archivo.</p>
<p><strong>[2]</strong> Enviar las <strong>headers de cache</strong> apropiadas al navegador del usuario. Por ejemplo tendremos cache de una semana añadiendo lo siguiente al inicio del código anterior:</p>
<div class="syntax_hilite">
<div id="php-4">
<div class="php"><a href="http://www.php.net/header"><span style="color:#000066;">header</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"Expires: "</span>.<a href="http://www.php.net/gmdate"><span style="color:#000066;">gmdate</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"D, d M Y H:i:s"</span>, <a href="http://www.php.net/mktime"><span style="color:#000066;">mktime</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><a href="http://www.php.net/date"><span style="color:#000066;">date</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"H"</span><span style="color:#006600; font-weight:bold;">&#41;</span>,<a href="http://www.php.net/date"><span style="color:#000066;">date</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"i"</span><span style="color:#006600; font-weight:bold;">&#41;</span>,<a href="http://www.php.net/date"><span style="color:#000066;">date</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"s"</span><span style="color:#006600; font-weight:bold;">&#41;</span>,<a href="http://www.php.net/date"><span style="color:#000066;">date</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"m"</span><span style="color:#006600; font-weight:bold;">&#41;</span>,<a href="http://www.php.net/date"><span style="color:#000066;">date</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"d"</span><span style="color:#006600; font-weight:bold;">&#41;</span>+<span style="color:#CC66CC;">7</span>,<a href="http://www.php.net/date"><span style="color:#000066;">date</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"Y"</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#FF0000;">"GMT"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
<a href="http://www.php.net/header"><span style="color:#000066;">header</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"Last-Modified: "</span>.<a href="http://www.php.net/gmdate"><span style="color:#000066;">gmdate</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">"D, d M Y H:i:s"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#FF0000;">"GMT"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</div>
</div>
<p></p>
<p>Para finalizar añadir que puedes generar botones más bonitos usando <em>imagecreatefrompng()</em> para cargar imágenes que sirvan de plantilla. Otra opción es con funciones como <em>imagepolygon()</em> y <em>imagerectangle()</em> dedicar un buen rato a diseñar pero con PHP :)</p>
<p>Como no soy muy de diseño (ni con las GD), si alguien se ha currado botones más bonitos usando <strong>sólo funciones GD</strong> o sabe sitios donde encontrarlos... q no se corte!</p>


<p>Entradas relacionadas:<ul><li><a href='http://www.phpbsd.net/2007/01/28/usando-mod_rewrite-y-feedburner-para-las-feeds-de-un-blog-con-wordpress/' rel='bookmark' title='Permanent Link: Usando mod_rewrite y FeedBurner para las feeds de un blog con WordPress'>Usando mod_rewrite y FeedBurner para las feeds de un blog con WordPress</a></li><li><a href='http://www.phpbsd.net/2007/02/09/leyendo-xml-desde-php-con-simplexml/' rel='bookmark' title='Permanent Link: Leyendo XML desde PHP con SimpleXML'>Leyendo XML desde PHP con SimpleXML</a></li><li><a href='http://www.phpbsd.net/2007/05/02/cache-en-memoria-compartida-con-apc/' rel='bookmark' title='Permanent Link: Cache en memoria compartida con APC'>Cache en memoria compartida con APC</a></li></ul></p>]]></content:encoded>
			<wfw:commentRss>http://www.phpbsd.net/2007/03/15/creando-imagenes-on-the-fly-con-las-gd-en-php/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

