<?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>mjcarrascosa.com &#187; GD</title>
	<atom:link href="http://mjcarrascosa.com/tag/gd/feed/" rel="self" type="application/rss+xml" />
	<link>http://mjcarrascosa.com</link>
	<description>Desarrollo web y otras hierbas</description>
	<lastBuildDate>Fri, 08 Jul 2011 07:41:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Generando thumbnails con PHP</title>
		<link>http://mjcarrascosa.com/generando-thumbnails-con-php/</link>
		<comments>http://mjcarrascosa.com/generando-thumbnails-con-php/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 13:57:55 +0000</pubDate>
		<dc:creator>Manuel Jesús Carrascosa de la Blanca</dc:creator>
				<category><![CDATA[Librerías]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[GD]]></category>
		<category><![CDATA[librería]]></category>
		<category><![CDATA[Thumbnail]]></category>

		<guid isPermaLink="false">http://mjcarrascosa.com/?p=504</guid>
		<description><![CDATA[Ya hemos visto en este blog como usar algunas de las funciones de la librería GD. Hoy le va a tocar el turno a la función imagecopyresampled, que nos va a permitir escalar una imagen. El código para generar el thumbnail mediante esta función es el siguiente: &#60;?php define('ANCHO', 100); $image_path = $_GET['i']; #Cargamos la [...]]]></description>
			<content:encoded><![CDATA[<p>Ya hemos visto en este blog como usar algunas de las funciones de la librería GD. Hoy le va a tocar el turno a la función <a title="Documentación de la función imagecopyresampled" href="http://www.php.net/manual/en/function.imagecopyresampled.php"><em>imagecopyresampled</em></a>, que nos va a permitir escalar una imagen. El código para generar el thumbnail mediante esta función es el siguiente:</p>
<pre class="brush:php">&lt;?php
define('ANCHO', 100);
$image_path = $_GET['i'];

#Cargamos la imagen original
$original = imagecreatefromjpeg($image_path);

#obtenemos el ancho y el alto
$original_x = imagesx($original);
$original_y = imagesy($original);

#calculamos el nuevo alto de la imagen, para que guarde la relación
#de aspecto
$alto_destino = round($original_y * ANCHO / $original_x, 0);

#creamos la imagen del thumbnail
$destino = imagecreatetruecolor(ANCHO, $alto_destino);

#copiamos la imagen original y la escalamos
imagecopyresampled($destino, $original, 0, 0, 0, 0, ANCHO, $alto_destino, $original_x, $original_y);

#mostramos la imagen del thumbnail
header('Content-Type: image/jpeg');
imagejpeg($destino);

#destruimos las imagenes
imagedestroy($destino);
imagedestroy($original);
</pre>
<p>Podríamos modificar este script para que guardara los thumbnails en un directorio, y si ya existe no haría falta volver a generarlo, pero eso lo dejamos mejor como pequeña <em>práctica</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://mjcarrascosa.com/generando-thumbnails-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mostrar imagenes desde un script en PHP</title>
		<link>http://mjcarrascosa.com/mostrar-imagenes-desde-un-script-en-php/</link>
		<comments>http://mjcarrascosa.com/mostrar-imagenes-desde-un-script-en-php/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 21:58:05 +0000</pubDate>
		<dc:creator>Manuel Jesús Carrascosa de la Blanca</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[GD]]></category>

		<guid isPermaLink="false">http://mjcarrascosa.com/?p=164</guid>
		<description><![CDATA[En ocasiones nos puede interesar generar una imagen desde un script en PHP (por ejemplo un gráfico o aplicarle el efecto polaroid que expliqué aquí hace poco). Para enviarla al navegador existen varias funciones de la librería GD dependiendo del formato que queramos, que son: Función Formato image2wbmp WBMP imagegd2 GD2 imagegd GD imagegif GIF [...]]]></description>
			<content:encoded><![CDATA[<p>En ocasiones nos puede interesar generar una imagen desde un script en PHP (por ejemplo un gráfico o aplicarle el efecto polaroid que expliqué aquí hace poco). Para enviarla al navegador existen varias funciones de la librería GD dependiendo del formato que queramos, que son:</p>
<table style="border-color: #000000; border-width: 1px; width: 168px; height: 148px;" border="1" cellspacing="0" cellpadding="3">
<tbody>
<tr>
<th>Función</th>
<th>Formato</th>
</tr>
<tr>
<td><a title="Documentación de image2wbmp" href="http://es2.php.net/manual/es/function.image2wbmp.php">image2wbmp</a></td>
<td>WBMP</td>
</tr>
<tr>
<td><a title="Documentación de imagegd2" href="http://es2.php.net/manual/es/function.imagegd2.php">imagegd2</a></td>
<td>GD2</td>
</tr>
<tr>
<td><a title="Documentación de imagegd" href="http://es2.php.net/manual/es/function.imagegd.php">imagegd</a></td>
<td>GD</td>
</tr>
<tr>
<td><a title="Documentación de imagegif" href="http://es2.php.net/manual/es/function.imagegif.php">imagegif</a></td>
<td>GIF</td>
</tr>
<tr>
<td><a title="Documentación de imagejpeg" href="http://es2.php.net/manual/es/function.imagejpeg.php">imagejpeg</a></td>
<td>JPEG</td>
</tr>
<tr>
<td><a title="Documentación de imagepng" href="http://es2.php.net/manual/es/function.imagepng.php">imagepng</a></td>
<td>PNG</td>
</tr>
<tr>
<td><a title="Documentación de imagexbm" href="http://es2.php.net/manual/es/function.imagexbm.php">imagexmb</a></td>
<td>XBM</td>
</tr>
</tbody>
</table>
<p>Estas funciones nos pueden servir también para guardar la imagen en un archivo, pasándole el nombre de este, y nos permiten algunos parámetros adicionales como puede ser la calidad de la imagen, aunque esto último varía dependiendo del formato.</p>
<p>Lo que tenemos que hacer es enviarle al navegador la cabecera &#8216;Content-Type&#8217; con el MIME Type del formato que queramos y después llamar a alguna de estas funciones indicándole un recurso de imagen. Aquí un pequeño ejemplo que carga una imagen llamada &#8216;imagenx.jpg&#8217;, donde x es un valor que se pasa como parámetro al script:</p>
<pre class="brush:php">
&lt;?php
//El nombre de la imagen
$nombreImagen = 'imagen'.$_GET['id'].'.jpg';
//Cargamos la imagen en formato JPEG
$imagen = imagecreatefromjpeg($nombreImagen);
//Enviamos la cabecera Content-Type
header('Content-Type: image/jpeg');
//Enviamos la imagen al navegador
imagejpeg($imagen);
//Destruimos la imagen
imagedestroy($imagen);
?&gt;</pre>
<p>Además de usar la función <a title="Documentación de imagejpeg" href="http://es2.php.net/manual/es/function.imagejpeg.php"><strong>imagejpeg</strong></a> hemos usado la función <a title="Documentación de imagecreatefromjpeg" href="http://es2.php.net/manual/es/function.imagecreatefromjpeg.php"><strong>imagecreatefromjpeg</strong></a>, que carga la imagen a partir de un fichero JPEG. Lo mejor, como siempre recomiendo, es mirar la <a title="Documentación de GD" href="http://es2.php.net/manual/es/ref.image.php">documentación de GD</a>, donde vienen explicadas todas las funciones de esta librería.</p>
]]></content:encoded>
			<wfw:commentRss>http://mjcarrascosa.com/mostrar-imagenes-desde-un-script-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Efecto polaroid con PHP y GD</title>
		<link>http://mjcarrascosa.com/efecto-polaroid-con-php-y-gd/</link>
		<comments>http://mjcarrascosa.com/efecto-polaroid-con-php-y-gd/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 16:51:24 +0000</pubDate>
		<dc:creator>Manuel Jesús Carrascosa de la Blanca</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[efecto polaroid]]></category>
		<category><![CDATA[GD]]></category>

		<guid isPermaLink="false">http://mjcarrascosa.com/?p=155</guid>
		<description><![CDATA[Hoy vamos a ver una función que nos permite aplicarle un efecto polariod a una imagen. La función es: &#60;?php /** * Función para aplicar el efecto polaroid a una imagen. * * @param string $path Ruta de la imagen * @param float $giro Angulo de giro de la imagen * @param int $rfondo componente [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy vamos a ver una función que nos permite aplicarle un efecto polariod a una imagen.</p>
<p>La función es:</p>
<pre class="brush:php">&lt;?php
/**
 * Función para aplicar el efecto polaroid a una imagen.
 *
 * @param string $path Ruta de la imagen
 * @param float $giro Angulo de giro de la imagen
 * @param int $rfondo componente rojo del color de fondo
 * @param int $gfondo componente verde del color de fondo
 * @param int $bfondo componente azul del color de fondo
 * @return resource imagen con el efecto polaroid aplicada
 */
function efectoPolaroid($path, $giro, $rfondo, $gfondo, $bfondo)
{
	// Cargamos la imagen a la que queremos aplicar el efecto polaroid
	$imgBase = imagecreatefromjpeg($path);
	//Creamos una nueva imagen.
	$img = imagecreatetruecolor(imagesx($imgBase) + 25, imagesy($imgBase) + 65);
	$blanco = imagecolorallocate($img, 255,255,255);

	//Rellenamos la nueva imagen de blanco
	imagefill($img,0,0, $blanco);

	//Copiamos la imagen a la que queremos aplicar el efecto polariod en nuestra nueva imagen.
	imagecopy($img, $imgBase, 11, 11, 0, 0, imagesx($imgBase), imagesy($imgBase));

	//Eliminamos nuestra imagen de memoria, ya que ya no hace falya
	imagedestroy($imgBase);

	//Color del borde
	$color = imagecolorallocate($img, 192,192,192);
	//Le ponemos un borde gris a nuestra imagen.
	imagerectangle($img, 0,0, imagesx($img)-4, imagesy($img)-4, $color);

	//Colores para la sombra
	$gris1 = imagecolorallocate($img, 208,208,208);
	$gris2 = imagecolorallocate($img, 224,224,224);
	$gris3 = imagecolorallocate($img, 240,240,240);

	//Le añadimos una pequeña sombra
	imageline($img, 2, imagesy($img)-3, imagesx($img)-1,imagesy($img)-3,$gris1);
	imageline($img, 4, imagesy($img)-2, imagesx($img)-1,imagesy($img)-2,$gris2);
	imageline($img, 6, imagesy($img)-1, imagesx($img)-1,imagesy($img)-1,$gris3);
	imageline($img, imagesx($img)-3, 2, imagesx($img)-3,imagesy($img)-4,$gris1);
	imageline($img, imagesx($img)-2, 4, imagesx($img)-2,imagesy($img)-4,$gris2);
	imageline($img, imagesx($img)-1, 6, imagesx($img)-1,imagesy($img)-4,$gris3);

	//Rotamos la imagen
	$fondo = imagecolorallocate($img, $rfondo, $gfondo, $bfondo);
	$rotatedImg = imagerotate($img, $giro, $fondo);

	//Destruimos la imagen con la que hemos estado trabajando
	imagedestroy($img);

	//Devolvemos la imagen rotada
	return $rotatedImg;
}
?&gt;
</pre>
<p>Aplicando la función a la siguiente imagen, con angulo de rotación -25º y color de fondo blanco:</p>
<div id="attachment_158" class="wp-caption alignnone" style="width: 310px"><a href="http://mjcarrascosa.com/wp-content/uploads/2009/06/imagenprueba.jpg"><img class="size-full wp-image-158" title="imagen para aplicarle el efecto polaroid" src="http://mjcarrascosa.com/wp-content/uploads/2009/06/imagenprueba.jpg" alt="imagen para aplicarle el efecto polaroid" width="300" height="225" /></a><p class="wp-caption-text">imagen para aplicarle el efecto polaroid</p></div>
<p>Nos queda esta otra:</p>
<div id="attachment_159" class="wp-caption alignnone" style="width: 415px"><a href="http://mjcarrascosa.com/wp-content/uploads/2009/06/efectopolaroid.png"><img class="size-full wp-image-159" title="Imagen con efecto polariod" src="http://mjcarrascosa.com/wp-content/uploads/2009/06/efectopolaroid.png" alt="Imagen con efecto polariod" width="405" height="384" /></a><p class="wp-caption-text">Imagen con efecto polariod</p></div>
<p>Ahora la descarga del archivo con la función con el efecto polaroid:</p>
<p><a href="http://mjcarrascosa.com/wp-content/uploads/2009/06/efectopolaroid.zip">Código con la función del efecto polaroid</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mjcarrascosa.com/efecto-polaroid-con-php-y-gd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

