<?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>Linux, Java y programación &#187; compresión</title>
	<atom:link href="http://casidiablo.net/tag/compresion/feed/" rel="self" type="application/rss+xml" />
	<link>http://casidiablo.net</link>
	<description>Blog de Java, Programación y Linux</description>
	<lastBuildDate>Fri, 11 Nov 2011 05:41:21 +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>Comprimir archivos con PHP</title>
		<link>http://casidiablo.net/ejemplo-comprimir-zip-bunzip-zlib-php/</link>
		<comments>http://casidiablo.net/ejemplo-comprimir-zip-bunzip-zlib-php/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 04:54:54 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[bunzip]]></category>
		<category><![CDATA[compresión]]></category>
		<category><![CDATA[comprimir]]></category>
		<category><![CDATA[ejemplos]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[zip]]></category>
		<category><![CDATA[zlib]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=3847</guid>
		<description><![CDATA[Zlib es una librería que proporciona funciones que nos permiten realizar tareas de compresión y descompresión usando el formato GZIP. En esta entrada vamos a ver algunos ejemplos sencillos de compresión de archivos usando dicha librería, y además veremos cómo funcionan las librerías adicionales para comprimir archivos en ZIP y Bunzip&#8230; aunque también existen otros [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fcasidiablo.net%252Fejemplo-comprimir-zip-bunzip-zlib-php%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fcasidiablo.in%2FcrIjSm%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Comprimir%20archivos%20con%20PHP%22%20%7D);"></div>
<p><img src="http://casidiablo.net/wordpress/wp-content/uploads/2010/07/avatardr.png" alt="" title="avatardr" width="108" height="175" style="float: right; margin: 5px;" /><a href="http://php.net/manual/en/book.zlib.php" class="external">Zlib</a> es una librería que proporciona funciones que nos permiten realizar tareas de compresión y descompresión usando el formato GZIP. En esta entrada vamos a ver algunos ejemplos sencillos de compresión de archivos usando dicha librería, y además veremos cómo funcionan las librerías adicionales para comprimir archivos en <code>ZIP</code> y <code>Bunzip</code>&#8230; aunque también existen otros formatos disponibles como <code>rar</code>, <code>lzf</code> y <code>phar</code>.</p>
<h3>Comprimir y descomprimir usando el formato GZIP</h3>
<p>Este es un ejemplo básico en donde se comprime y descomprime un archivo:</p>
<pre class="brush: php; title: ; notranslate">function descomprimir($origen, $destino) {
  $string = implode(&quot;&quot;, gzfile($origen));
  $fp = fopen($destino, &quot;w&quot;);
  fwrite($fp, $string, strlen($string));
  fclose($fp);
} 

function comprimir($origen, $destino) {
  $fp = fopen($origen, &quot;r&quot;);
  $data = fread ($fp, filesize($origen));
  fclose($fp);
  $zp = gzopen($destino, &quot;w9&quot;);
  gzwrite($zp, $data);
  gzclose($zp);
}
comprimir(&quot;archivo.txt&quot;,&quot;archivo.gz&quot;);
descomprimir(&quot;archivo.gz&quot;,&quot;archivo2.txt&quot;);</pre>
<p>Esta es una breve descripción de las funciones para Gzip incluidas en Zlib:</p>
<ul>
<li><code>gzclose</code> — Cierra un puntero gz-file</li>
<li><code>gzcompress</code> — Comprime una cadena de texto</li>
<li><code>gzencode</code> — Crea una cadena de texto comprimida en gzip</li>
<li><code>gzeof</code> — Verifica si es el fin del archivo en un puntero gz-file</li>
<li><code>gzfile</code> — Lee el contenido de un archivo gzip y lo almacena en un arreglo</li>
<li><code>gzgetc</code> — Obtiene el caracter al que apunta un gz-file pointer</li>
<li><code>gzgets</code> — Obtiene la linea a la que apunta un gz-file pointer</li>
<li><code>gzgetss</code> — Obtiene la linea a la que apunta un gz-file pointer y remueve las etiquetas HTML</li>
<li><code>gzinflate</code> — Descomprime una cadena comprimida</li>
<li><code>gzopen</code> — Abre un archivo gzip</li>
</ul>
<h3>Comprimir usando el formato Bunzip</h3>
<p>Aquí un ejemplo muy básico:</p>
<pre class="brush: php; title: ; notranslate">function comprimir_bzip($origen, $destino){
    // abrir el archivo en modo escritura
    $bz = bzopen($destino, &quot;w&quot;);
    // escribir el contenido del origen
    bzwrite($bz, file_get_contents($filename));
    // cerrar el archivo
    bzclose($bz);
}</pre>
<p>Información adicional y lista de las funciones disponibles: <strong><a class="external" href="http://www.php.net/manual/en/book.bzip2.php">PHP: Bunzip</a></strong>.</p>
<h3>Comprimir usando el formato ZIP</h3>
<p>En este caso se utilizan la clase <code>ZipArchive</code>:</p>
<pre class="brush: php; title: ; notranslate">function comprimir_zip($origen, $destino){
    $zip = new ZipArchive();
    if ($zip-&gt;open($destino, ZIPARCHIVE::CREATE)!==TRUE) {
        die(&quot;Error al crear el archivo&quot;);
    }
    $zip-&gt;addFile($origen, &quot;/&quot;.basename($origen));
    $zip-&gt;close();
}</pre>
<h3>Verificar la existencia de las librerías</h3>
<p>Esta es una manera sencilla de verificar si PHP fue compilado con soporte para estas librerías:</p>
<pre class="brush: php; title: ; notranslate">if( class_exists('ZipArchive') )
    echo &quot;ZIP: OK\n&quot;;
if( function_exists('bzwrite') )
    echo &quot;Bunzip: OK\n&quot;;
if( function_exists('gzwrite') )
    echo &quot;gzip: OK\n&quot;;</pre>

]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/ejemplo-comprimir-zip-bunzip-zlib-php/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Iconos de compresión para proyectos linuxeros</title>
		<link>http://casidiablo.net/imagenes-compresion-linux/</link>
		<comments>http://casidiablo.net/imagenes-compresion-linux/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 16:11:12 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[compresión]]></category>
		<category><![CDATA[iconos]]></category>
		<category><![CDATA[tux]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=1984</guid>
		<description><![CDATA[Acabo de ver este pack de iconos de compresión para proyetos linuxeros, y me han parecido geniales: Descargar pack Lo he visto en: gEEK THE pLANET]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fcasidiablo.net%252Fimagenes-compresion-linux%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Iconos%20de%20compresi%C3%B3n%20para%20proyectos%20linuxeros%22%20%7D);"></div>
<p>Acabo de ver este pack de iconos de compresión para proyetos linuxeros, y me han parecido geniales:</p>
<p style="text-align: center;"><img class="size-full wp-image-1985 aligncenter" title="iconos" src="http://casidiablo.net/wordpress/wp-content/uploads/2008/10/iconos.jpg" alt="" width="450" height="260" /></p>
<p><a class="tooltip download" title="Contiene cuatro imagenes PNG con transparencia" href="http://casidiablo.net/descargar/Iconos+Linux">Descargar pack</a><br />
Lo he visto en: <strong><a href="http://blog.geektheplanet.net/1200/iconos-de-compresion-linuxeros.xhtml">gEEK THE pLANET</a></strong></p>

]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/imagenes-compresion-linux/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>pngcrush, optimiza tus imágenes PNG</title>
		<link>http://casidiablo.net/pngcrush-optimiza-tus-imagenes-png/</link>
		<comments>http://casidiablo.net/pngcrush-optimiza-tus-imagenes-png/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 19:49:50 +0000</pubDate>
		<dc:creator>Cristian</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[programas]]></category>
		<category><![CDATA[software libre]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[compresión]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[PNG]]></category>
		<category><![CDATA[tip]]></category>

		<guid isPermaLink="false">http://casidiablo.net/?p=1264</guid>
		<description><![CDATA[pngcrush es un programa que nos permite, entre otras cosas, reducir el tamaño de las imágenes en formato PNG. Se encuentra disponible en los repositorios de prácticamente todas las distros, por lo que puedes instalarlo en Ubuntu o Debian así: sudo apt-get install pngcrush Uso: pngcrush -rem -reduce -brute entrada.png salida.png Donde: -rem = remueve [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Fcasidiablo.net%252Fpngcrush-optimiza-tus-imagenes-png%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22pngcrush%2C%20optimiza%20tus%20im%C3%A1genes%20PNG%22%20%7D);"></div>
<p><a href="http://pmt.sourceforge.net/pngcrush/">pngcrush</a> es un programa que nos permite, entre otras cosas, reducir el tamaño de las imágenes en formato <a href="http://es.wikipedia.org/wiki/PNG">PNG</a>. Se encuentra disponible en los repositorios de prácticamente todas las distros, por lo que puedes instalarlo en Ubuntu o Debian así:</p>
<p class="consola">sudo apt-get install pngcrush</p>
<h3>Uso:</h3>
<p class="consola">pngcrush -rem -reduce -brute entrada.png salida.png</p>
<p>Donde:</p>
<ul>
<li>-rem = remueve la información adicional de la imagen</li>
<li>-reduce = indica que se realizará una reducción del tamaño de la imagen</li>
<li>-brute = utiliza  un método de fuerza bruta que prueba 114 filtros y métodos compresión, y selecciona el que mejor comprima la imagen</li>
<li>entrada.png = es la imagen original</li>
<li>salida.png = el nombre de la imagen resultado de la compresión</li>
</ul>
<p>Personalmente me ha gustado mucho, aunque el comando sea bastante largo <img src='http://casidiablo.net/wordpress/wp-includes/images/smilies/icon_cool.gif' alt='8-)' class='wp-smiley' /> Yo te recomiendo crear un alias que nos facilite las cosas:</p>
<p class="consola">alias pngc = &#8216;pngcrush -rem -reduce -brute&#8217;</p>
<p>De tal manera que solo debamos hacer algo como:</p>
<p class="consola">pngc entrada.png salida.png</p>
<p>Recuerda además que si deseas que este alias sea permanente, debes añadirlo en tu archivo .bashrc, que se encuentra en tu carpeta home <img src='http://casidiablo.net/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Me enteré de el leyendo <strong><a href="http://eveliotc.wordpress.com/2008/08/04/optimizar-al-maximo-imagenes-png/">evelio.blog()</a></strong></p>

]]></content:encoded>
			<wfw:commentRss>http://casidiablo.net/pngcrush-optimiza-tus-imagenes-png/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

