<?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; imagen</title>
	<atom:link href="http://sentidoweb.com/tag/imagen/feed" rel="self" type="application/rss+xml" />
	<link>http://sentidoweb.com</link>
	<description>Desarrollo web, HTML, CSS, Javascript, PHP, MySQL</description>
	<lastBuildDate>Mon, 16 Jan 2012 10:16:20 +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>Close Pixelate: pixela imágenes con HTML5</title>
		<link>http://sentidoweb.com/2010/10/20/close-pixelate-pixela-imagenes-con-html5.php</link>
		<comments>http://sentidoweb.com/2010/10/20/close-pixelate-pixela-imagenes-con-html5.php#comments</comments>
		<pubDate>Wed, 20 Oct 2010 17:25:18 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Quicklinks]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[imagen]]></category>
		<category><![CDATA[pixelate]]></category>

		<guid isPermaLink="false">http://www.webappers.com/2010/10/19/convert-images-into-a-pixelated-version-with-close-pixelate/</guid>
		<description><![CDATA[Close Pixelate es un script que convierte una imagen en su correspondiente pixelada haciendo uso de HTML5 y canvas. Se le pueden indicar las siguientes opciones: resolución, forma del pixelado, tamaño, desplazamiento y canal alpha Su uso es tan sencillo como ejecutar lo siguiente: var docReady = function&#40;&#41; &#123; document.getElementById&#40;'portrait-image'&#41;.closePixelate&#40;&#91; &#123; resolution : 24 &#125;, [...]]]></description>
			<content:encoded><![CDATA[<p>Close Pixelate es un script que convierte una imagen en su correspondiente pixelada haciendo uso de HTML5 y canvas. Se le pueden indicar las siguientes opciones: resolución, forma del pixelado, tamaño, desplazamiento y canal alpha</p>
<p><img src="http://sentidoweb.com/wp-content/uploads/2010/10/canvas.png" alt="" title="canvas" width="500" height="313" class="center" /></p>
<p>Su uso es tan sencillo como ejecutar lo siguiente:</p>
<pre><code><pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> docReady = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
  document.<span style="color: #006600;">getElementById</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'portrait-image'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">closePixelate</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#91;</span>
    <span style="color: #66cc66;">&#123;</span> resolution : <span style="color: #CC0000;">24</span> <span style="color: #66cc66;">&#125;</span>,
    <span style="color: #66cc66;">&#123;</span> shape : <span style="color: #3366CC;">'circle'</span>, resolution : <span style="color: #CC0000;">24</span>, size: <span style="color: #CC0000;">16</span>, offset: <span style="color: #CC0000;">12</span>, alpha: <span style="color: #CC0000;">0</span>.<span style="color: #CC0000;">5</span> <span style="color: #66cc66;">&#125;</span>
  <span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>;
window.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span> <span style="color: #3366CC;">'DOMContentLoaded'</span>, docReady, <span style="color: #003366; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>;</pre></code></pre>
<p><a href="http://desandro.com/resources/close-pixelate/">Close Pixelate</a></p>
<p>Vía / <a href="http://www.webappers.com/2010/10/19/convert-images-into-a-pixelated-version-with-close-pixelate/" title="Convert Images into a Pixelated Version with Close Pixelate">WebAppers</a></p>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/10/20/close-pixelate-pixela-imagenes-con-html5.php/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Redimensionado óptimo de imágenes con PHP</title>
		<link>http://sentidoweb.com/2010/03/23/redimensionado-optimo-de-imagenes-con-php.php</link>
		<comments>http://sentidoweb.com/2010/03/23/redimensionado-optimo-de-imagenes-con-php.php#comments</comments>
		<pubDate>Tue, 23 Mar 2010 10:58:50 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[gd]]></category>
		<category><![CDATA[imagen]]></category>
		<category><![CDATA[resize]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/?p=2237</guid>
		<description><![CDATA[Redimensionar imágenes con PHP es algo de lo que se ha hablado mucho, y no voy a contar nada nuevo, pero el tutorial que enlazo me parece bastante bueno y sencillo y nos puede ahorrar el crear los métodos nosotros mismos, porque no suele ser tan sencillo como hacer un resize, sino que a veces [...]]]></description>
			<content:encoded><![CDATA[<p>Redimensionar imágenes con PHP es algo de lo que <a href="http://sentidoweb.com/tag/gd" title="Imágenes con PHP en Sentido Web">se ha hablado mucho</a>, y no voy a contar nada nuevo, pero el tutorial que enlazo me parece bastante bueno y sencillo y nos puede ahorrar el crear los métodos nosotros mismos, porque no suele ser tan sencillo como hacer un resize, sino que a veces es necesario ajustar a un tamaño en particular y si son de diferentes <em>aspect ratio</em> pues entonces hay que pensar si dejar espacio neutro en los laterales o arriba/abajo.</p>
<p>Lo único que no me gusta es que para abrir la imagen se fija en la extensión del fichero, cuando <a href="http://sentidoweb.com/2010/02/01/laboratorio-leer-cualquier-tipo-de-imagen-en-php-de-forma-sencilla.php" title="Laboratorio: leer cualquier tipo de imágen en PHP de forma sencilla">puede usarse otro método</a> y así podremos abrir la imagen que sea, por ejemplo desde una URL.</p>
<p><a href="http://net.tutsplus.com/tutorials/php/image-resizing-made-easy-with-php/">Image Resizing Made Easy with PHP</a></p>]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2010/03/23/redimensionado-optimo-de-imagenes-con-php.php/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Preview de imágenes en enlaces con jQuery</title>
		<link>http://sentidoweb.com/2009/02/11/preview-de-imagenes-en-enlaces-con-jquery.php</link>
		<comments>http://sentidoweb.com/2009/02/11/preview-de-imagenes-en-enlaces-con-jquery.php#comments</comments>
		<pubDate>Thu, 12 Feb 2009 01:30:00 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[imagen]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[preview]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2009/02/11/preview-de-imagenes-en-enlaces-con-jquery.php</guid>
		<description><![CDATA[Curioso y sencillo plugin de jQuery que permite crear previews de imágenes enlazadas en etiquetas &#60;a&#62; tanto directamente en el atributo href como en el rel. Permite añadir estilos, un contenedor e incluso eventos (onload, onhide, onshow). $&#40;'ul#fourth a'&#41;.imgPreview&#40;&#123; containerID: 'imgPreviewWithStyles', imgCSS: &#123; // Limit preview size: height: 200 &#125;, // When container is shown: [...]]]></description>
			<content:encoded><![CDATA[<p>Curioso y sencillo plugin de jQuery que permite crear previews de imágenes enlazadas en etiquetas &lt;a&gt; tanto directamente en el atributo <em>href</em> como en el <em>rel</em>. Permite añadir estilos, un contenedor e incluso eventos (onload, onhide, onshow).</p>
<p><img alt="imagepreview.png" src="http://sentidoweb.com/img/2009/02/imagepreview.png" width="400" height="284" class="center" /></p>
<pre><code><pre class="javascript">$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'ul#fourth a'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">imgPreview</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#123;</span>
containerID: <span style="color: #3366CC;">'imgPreviewWithStyles'</span>,
imgCSS: <span style="color: #66cc66;">&#123;</span>
<span style="color: #009900; font-style: italic;">// Limit preview size:</span>
height: <span style="color: #CC0000;">200</span>
<span style="color: #66cc66;">&#125;</span>,
<span style="color: #009900; font-style: italic;">// When container is shown:</span>
onShow: <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>link<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'&lt;span&gt;'</span> + $<span style="color: #66cc66;">&#40;</span>link<span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">text</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #3366CC;">'&lt;/span&gt;'</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">appendTo</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>,
<span style="color: #009900; font-style: italic;">// When container hides:</span>
onHide: <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>link<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
$<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'span'</span>, <span style="color: #000066; font-weight: bold;">this</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #006600;">remove</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span>;</pre></code></pre>
<p><a href="http://james.padolsey.com/javascript/new-jquery-plugin-imgpreview/">New jQuery plugin: ‘imgPreview’</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2009/02/11/preview-de-imagenes-en-enlaces-con-jquery.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Laboratorio: Recorta imágenes dinámicamente con PHP y HTML</title>
		<link>http://sentidoweb.com/2006/04/11/laboratorio-recorta-imagenes-dinamicamente-con-php-y-html.php</link>
		<comments>http://sentidoweb.com/2006/04/11/laboratorio-recorta-imagenes-dinamicamente-con-php-y-html.php#comments</comments>
		<pubDate>Tue, 11 Apr 2006 22:18:12 +0000</pubDate>
		<dc:creator>displaynone</dc:creator>
				<category><![CDATA[Grafismo]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Laboratorio]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[crop]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[imagen]]></category>
		<category><![CDATA[laboratorio imágenes]]></category>
		<category><![CDATA[laboratorio php]]></category>
		<category><![CDATA[recortar]]></category>
		<category><![CDATA[recortar imagenes php]]></category>

		<guid isPermaLink="false">http://sentidoweb.com/2006/04/11/laboratorio-recorta-imagenes-dinamicamente-con-php-y-html.php</guid>
		<description><![CDATA[En muchos sitios web de almacenamiento de imágenes se nos permite retocar las imágenes. Hoy vamos a explicar como recortar una imagen directamente desde una página web. Para ello tenemos que crearnos una página web que nos permita seleccionar la zona de la imagen que queremos recortar y de un script PHP que usando la [...]]]></description>
			<content:encoded><![CDATA[<p>En muchos sitios web de almacenamiento de imágenes se nos permite retocar las imágenes. Hoy vamos a explicar como recortar una imagen directamente desde una página web.
<a href="http://sentidoweb.com/lab/recortar/php/recortar.html"><img alt="crop.png" src="http://sentidoweb.com/img/2006/04/crop.png" width="400" height="239" class="center"/></a>
Para ello tenemos que crearnos una página web que nos permita seleccionar la zona de la imagen que queremos recortar y de un script PHP que usando la librería GD recortará la imagen y la devolverá en formato PNG.</p>

<span id="more-125"></span>
<p>Primero es crear la página web que muestra la imagen y permite recortarla. Constará de una capa que contiene la imagen y de otra capa (<em>span</em>) que se usará para crear el marco de selección. Bueno, también hay una capa que mostrará la imagen resultante, pero esto no es necesario, solo es para mostrar el resultado en la misma página.</p>
<p>El HTML necesario para contener la imagen es el siguiente:</p>
<pre><code>&lt;div class="contenedor"
onclick="posicionaMarco(event)"
onmousemove="despliegaMarco(event)"&gt;
&lt;img src="<em>foto.jpg</em>" alt="Foto" /&gt;
&lt;span id="marco"&gt;&lt;/span&gt;
&lt;/div></code></pre>
<p>La capa <em>contenedor</em> tendrá dos eventos que serán controlados:</p>
<ul><li><em>onclick</em>: cuando se pincha en la imagen se empecerá/finalizará la selección de la zona de la imagen que queremos recortar.</li>
<li><em>onmousemove</em>: mientras se mueva el ratón por la imagen se creará el marco que indica que zona de la imagen se está seleccionando. En este caso, para no complicar la explicación del efecto, obligamos a que la selección se haga de izquierda-derecha y de arriba-abajo.</li>
</ul>
<p>Los estilos solo hay que destacar que la capa contenedora debe tener el mismo tamaño que la imagen para evitar seleccionar más de la cuenta y que luego falle el script PHP, y que la capa marco debe tener el borde visible, en este caso sólido, rojizo y de 2 píxeles de grosor.</p>
<p>Cuando pinchamos en la imagen almacenamos la posición <em>x</em> e <em>y</em> del ratón, ya que será la esquina superior izquierda y luego inicializar los valores del marco.</p>
<pre><code>var _IE_ = navigator.userAgent.indexOf("MSIE") != -1; // Si es IE
var inicio = false;
var xini = 0;
var yini = 0;
var xfin = 0;
var yfin = 0;
function posicionaMarco(e) {
inicio = !inicio;
var marco = document.getElementById("marco");
if (inicio) {
marco.style.display = "block";
// En IE y Opera se usa otra propiedad del evento
if (_IE_) {
xini = e.offsetX;
yini = e.offsetY;
} else {
xini = e.layerX;
yini = e.layerY;
}
marco.style.left = xini+"px";
marco.style.top = yini+"px";
marco.style.width = "0px";
marco.style.height = "0px";
}
}</code></pre>
<p>Cuando se mueve el ratón por la superficie de la imagen (realmente de la capa), almacenamos la esquina inferior derecha del marco y modificamos el ancho y alto.</p>
<pre><code>function despliegaMarco(e) {
if (inicio) {
var marco = document.getElementById("marco");
// En IE y Opera se usa otra propiedad del evento
// El 7 es para evitar que el ratón se solape con el marco y nos dé problemas
if (_IE_) {
xfin = e.offsetX-7;
yfin = e.offsetY-7;
} else {
xfin = e.layerX-7;
yfin = e.layerY-7;
}
// El 5 es para que haya un tamaño mínimo
if (xfin > xini+5) {
marco.style.width = (xfin-xini)+"px";
}
if (yfin > yini+5) {
marco.style.height = (yfin-yini)+"px";
}
}
}</code></pre>
<p>Ya tenemos el HTML que nos permite seleccionar la zona de la imagen, ahora solo hace falta el script PHP. El funcionamiento es sencillo, carga la imagen, crea una imagen nueva con el tamaño final que debe tener y copiamos la zona que queremos recortar de la imagen en la nueva imagen. Por último devolvemos la imagen nueva.</p>
<pre><code>&lt;?php
// Abre la imagen
$fichero = getcwd()."/".$_GET["img"];
if (preg_match('/.png$/', $fichero)) {
$img = imagecreatefrompng($fichero);
} else if (preg_match('/.gif$/', $fichero)) {
$img = imagecreatefromgif($fichero);
} else if (preg_match('/.jpg$/', $fichero)) {
$img = imagecreatefromjpeg($fichero);
}
$xini = $_GET["xini"];
$yini = $_GET["yini"];
$xfin = $_GET["xfin"];
$yfin = $_GET["yfin"];
$res = imagecreatetruecolor (
$xfin-$xini, $yfin-$yini);
imagecopy($res, $img, 0, 0,
$xini, $yini,
$xfin-$xini, $yfin-$yini);
header("Content-type: image/png");
imagepng($res);
?&gt;</code></pre>
<p>Se le pueden añadir más funcionalidades, pero para ir empezando creo que está bien así.</p>
<p><a href="http://sentidoweb.com/lab/recortar/php/recortar.html">Ejemplo</a></p>
<p>Te puedes bajar las fuentes <a href="http://sentidoweb.com/lab/recortar/php/recortar.zip">aquí</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sentidoweb.com/2006/04/11/laboratorio-recorta-imagenes-dinamicamente-con-php-y-html.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

