{"id":31,"date":"2014-10-12T17:40:01","date_gmt":"2014-10-12T16:40:01","guid":{"rendered":"http:\/\/www.pixnbgames.com\/blog\/?p=31"},"modified":"2015-04-03T09:39:13","modified_gmt":"2015-04-03T08:39:13","slug":"optimizar-imagenes-png-con-pngquant","status":"publish","type":"post","link":"https:\/\/www.pixnbgames.com\/blog\/tratamiento-imagenes\/optimizar-imagenes-png-con-pngquant\/","title":{"rendered":"Reducir el tama\u00f1o de im\u00e1genes PNG con pngquant"},"content":{"rendered":"<p style=\"text-align: justify;\">Cuando desarrollamos software para dispositivos m\u00f3viles, hemos de tener en cuenta que \u00e9stos\u00a0tienen unas especificaciones reducidas si las comparamos con los PCs tradicionales. Uno de los aspectos a tener en cuenta es el tama\u00f1o final de nuestro programa, pues probablemente de ello depender\u00e1 que m\u00e1s de un usuario se decida a instalarlo.<\/p>\n<p style=\"text-align: justify;\">En el caso de los videojuegos, nos encontramos con que normalmente haremos uso de un gran n\u00famero\u00a0de im\u00e1genes, lo que dar\u00e1 lugar a que nuestro\u00a0programa\u00a0ocupe\u00a0un espacio en disco\u00a0elevado. Por ello, es interesante conocer herramientas que nos ayuden a optimizar\u00a0los recursos\u00a0de nuestro programa.<\/p>\n<h3>pngquant<\/h3>\n<p style=\"text-align: justify;\">Durante el desarrollo de mi primer videojuego para Android, me encontr\u00e9 que el\u00a0archivo ejecutable final ocupaba bastante\u00a0a pesar de no ser un juego demasiado extenso. Buscando informaci\u00f3n sobre c\u00f3mo reducir el tama\u00f1o de este archivo llegu\u00e9 a\u00a0<a title=\"pngquant\" href=\"http:\/\/pngquant.org\/\" target=\"_blank\">pngquant<\/a>.<\/p>\n<p style=\"text-align: justify;\"><em>pngquant <\/em>es una utilidad de linea de comandos, disponible para OS X, Windows y varias distribuciones GNU\/Linux, que nos permite comprimir nuestras im\u00e1genes PNG con muy poca p\u00e9rdida de calidad.\u00a0Es una librer\u00eda de c\u00f3digo abierto; podemos consultar\u00a0su c\u00f3digo fuente directamente desde GitHub. Adem\u00e1s, existe una serie de herramientas gr\u00e1ficas que nos facilitan el trabajo con <em>pngquant<\/em> si no nos sentimos del todo c\u00f3modos con la linea de comandos. Por ejemplo,\u00a0<a title=\"TinyPNG site\" href=\"https:\/\/tinypng.com\/\" target=\"_blank\">TinyPNG<\/a> es una utilidad en linea que nos permite optimizar nuestras im\u00e1genes directamente desde su\u00a0web.<\/p>\n<h4 style=\"text-align: justify;\">C\u00f3mo usar\u00a0pngquant<\/h4>\n<p style=\"text-align: justify;\">El primer paso es descargar la utilidad para nuestro sistema operativo directamente desde su p\u00e1gina web: <a title=\"Sitio oficial pngquant\" href=\"http:\/\/pngquant.org\/\" target=\"_blank\">http:\/\/pngquant.org\/<\/a>. En este caso,\u00a0descargar\u00e9 el binario para Windows.<\/p>\n<p style=\"text-align: justify;\">Una vez descargado, descomprimimos la carpeta en el lugar donde queramos instalar la librer\u00eda. Por ejemplo, en mi caso he usado el directorio \u00abC:\\ desarrollo\\ herramientas\\ pngquant\u00bb.<\/p>\n<p style=\"text-align: justify;\">Al descomprimir la librer\u00eda, tendremos el siguiente contenido:<\/p>\n<figure id=\"attachment_42\" aria-describedby=\"caption-attachment-42\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/pngquant-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-42\" src=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/pngquant-1-300x129.png\" alt=\"Contenido pngquant\" width=\"300\" height=\"129\" srcset=\"https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/pngquant-1-300x129.png 300w, https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/pngquant-1.png 384w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-42\" class=\"wp-caption-text\">Contenido pngquant<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">Como podemos ver, adem\u00e1s de la propia librer\u00eda (pngquant.exe) se proporciona una serie de scripts .bat, que nos permitir\u00e1n usar la librer\u00eda de forma bastante r\u00e1pida. Basta con seleccionar la imagen que queremos optimizar y arrastrarla sobre alguno de estos archivos .bat, y autom\u00e1ticamente se generar\u00e1 una copia optimizada de la imagen.<\/p>\n<p style=\"text-align: justify;\">Vamos con un ejemplo:<\/p>\n<ol>\n<li style=\"text-align: left;\">Tomamos la siguiente imagen PNG sin optimizar. Es una archivo de 288 KB.\n<p><figure id=\"attachment_40\" aria-describedby=\"caption-attachment-40\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/monstegg_title-original.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-40\" src=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/monstegg_title-original-300x169.png\" alt=\"Imagen original: 288 KB\" width=\"300\" height=\"169\" srcset=\"https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/monstegg_title-original-300x169.png 300w, https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/monstegg_title-original.png 568w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-40\" class=\"wp-caption-text\">Imagen original: 288 KB<\/figcaption><\/figure><\/li>\n<li style=\"text-align: justify;\">Arrastramos la imagen y la soltamos sobre el script \u00ab<em>Drag PNG here to reduce palette automatically.bat<\/em>\u00bb de pngquant.\n<p><figure id=\"attachment_47\" aria-describedby=\"caption-attachment-47\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/pngquant-2.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-47\" src=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/pngquant-2-300x115.png\" alt=\"Arrastrar sobre script de pngquant\" width=\"300\" height=\"115\" srcset=\"https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/pngquant-2-300x115.png 300w, https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/pngquant-2.png 425w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-47\" class=\"wp-caption-text\">Arrastrar sobre script de pngquant<\/figcaption><\/figure><\/li>\n<li style=\"text-align: justify;\">Esto nos genera autom\u00e1ticamente dos im\u00e1genes optimizadas, con los sufijos \u00ab-fs8\u00bb y \u00ab-or8\u00bb:\n<figure id=\"attachment_48\" aria-describedby=\"caption-attachment-48\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/monstegg_title-original-fs8.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-48\" src=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/monstegg_title-original-fs8-300x169.png\" alt=\"Imagen optimizada (fs8): 80 KB\" width=\"300\" height=\"169\" srcset=\"https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/monstegg_title-original-fs8-300x169.png 300w, https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/monstegg_title-original-fs8.png 568w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-48\" class=\"wp-caption-text\">Imagen optimizada (fs8): 80 KB<\/figcaption><\/figure>\n<p><figure id=\"attachment_49\" aria-describedby=\"caption-attachment-49\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/monstegg_title-original-or8.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-49\" src=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/monstegg_title-original-or8-300x169.png\" alt=\"Imagen optimizada (or8): 75 KB\" width=\"300\" height=\"169\" srcset=\"https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/monstegg_title-original-or8-300x169.png 300w, https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/monstegg_title-original-or8.png 568w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-49\" class=\"wp-caption-text\">Imagen optimizada (or8): 75 KB<\/figcaption><\/figure><\/li>\n<li style=\"text-align: justify;\">Como podemos comprobar, el tama\u00f1o del archivo se ha reducido en ambos casos en m\u00e1s de un 70%. Adem\u00e1s, he de reconocer que en una comparaci\u00f3n a simple vista yo personalmente no soy capaz de apreciar los cambios.<\/li>\n<\/ol>\n<h4 style=\"text-align: justify;\">Instalar pngquant<\/h4>\n<p style=\"text-align: justify;\">Para poder usar <em>pngquant<\/em> desde la linea de comandos, podemos\u00a0instalarla en el sistema. Para ello, simplemente a\u00f1adiremos la ruta de instalaci\u00f3n al path del sistema (Windows):<\/p>\n<ol>\n<li style=\"text-align: justify;\">Accedemos a \u00abPanel de Control\u00bb &gt; \u00abSistema y seguridad\u00bb &gt; \u00abSistema\u00bb<\/li>\n<li style=\"text-align: justify;\">Una vez ah\u00ed, seleccionamos \u00abConfiguraci\u00f3n avanzada del sistema\u00bb<\/li>\n<li style=\"text-align: justify;\">Se abrir\u00e1 la ventana \u00abPropiedades avanzadas\u00bb. Seleccionamos la pesta\u00f1a \u00abOpciones avanzadas\u00bb y a continuaci\u00f3n \u00abVariables de entorno\u00bb.\n<p><figure id=\"attachment_43\" aria-describedby=\"caption-attachment-43\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/Configuraci\u00f3n-avanzada-del-sistema.png\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-43 size-medium\" src=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/Configuraci\u00f3n-avanzada-del-sistema-300x259.png\" alt=\"Configuraci\u00f3n avanzada del sistema\" width=\"300\" height=\"259\" srcset=\"https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/Configuraci\u00f3n-avanzada-del-sistema-300x259.png 300w, https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/Configuraci\u00f3n-avanzada-del-sistema.png 663w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-43\" class=\"wp-caption-text\">Acceder a la ventana de variables del entorno de Windows<\/figcaption><\/figure><\/li>\n<li style=\"text-align: justify;\">En la ventana de \u00abVariables de entorno\u00bb, seleccionamos la variable \u00abpath\u00bb y pulsamos el bot\u00f3n \u00abEditar&#8230;\u00bb.<\/li>\n<li style=\"text-align: justify;\">En la nueva ventana podemos editar el valor de la variable.\u00a0Para incluir <em>pngquant<\/em> en el path dle sistema, en el cuadro de texto \u00abValor de la variable\u00bb hemos de a\u00f1adir al final de valor un punto y coma (;) seguido de la ruta donde tenemos descomprimido <em>pngquant<\/em>. En mi caso \u00abC:\\ desarrollo\\ herramientas\\ pngquant\u00bb:\n<p><figure id=\"attachment_50\" aria-describedby=\"caption-attachment-50\" style=\"width: 257px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/A\u00f1adir-pngquant-al-path.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-50\" src=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/A\u00f1adir-pngquant-al-path-257x300.png\" alt=\"A\u00f1adir pngquant al path del sistema\" width=\"257\" height=\"300\" srcset=\"https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/A\u00f1adir-pngquant-al-path-257x300.png 257w, https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/A\u00f1adir-pngquant-al-path.png 425w\" sizes=\"(max-width: 257px) 100vw, 257px\" \/><\/a><figcaption id=\"caption-attachment-50\" class=\"wp-caption-text\">A\u00f1adir pngquant al path del sistema<\/figcaption><\/figure><\/li>\n<\/ol>\n<p style=\"text-align: justify;\">Tras la instalaci\u00f3n, podremos usar la herramienta tecleando \u00abpngquant\u00bb desde la linea de comandos:<\/p>\n<figure id=\"attachment_51\" aria-describedby=\"caption-attachment-51\" style=\"width: 300px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/pngquant-4.png\"><img decoding=\"async\" loading=\"lazy\" class=\"size-medium wp-image-51\" src=\"http:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/pngquant-4-300x171.png\" alt=\"Usar pngquant desde linea de comandos\" width=\"300\" height=\"171\" srcset=\"https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/pngquant-4-300x171.png 300w, https:\/\/www.pixnbgames.com\/blog\/wp-content\/uploads\/2014\/10\/pngquant-4.png 694w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><figcaption id=\"caption-attachment-51\" class=\"wp-caption-text\">Usar pngquant desde linea de comandos<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<h3>Para saber m\u00e1s<\/h3>\n<p style=\"text-align: justify;\">Por supuesto el uso de <em>pngquant<\/em> no se queda aqu\u00ed. Para profundizar en\u00a0el uso y las posibilidades que nos brinda esta herramienta, puedes consultar su sitio web:\u00a0<a title=\"Sitio oficial pngquant\" href=\"http:\/\/pngquant.org\/\" target=\"_blank\">http:\/\/pngquant.org\/<\/a><\/p>\n<p style=\"text-align: justify;\">\n","protected":false},"excerpt":{"rendered":"<p>Cuando desarrollamos software para dispositivos m\u00f3viles, hemos de tener en cuenta que \u00e9stos\u00a0tienen unas especificaciones reducidas si las comparamos con los PCs tradicionales. Uno de los aspectos a tener en cuenta es el tama\u00f1o final de nuestro programa, pues probablemente <a class=\"more-link\" href=\"https:\/\/www.pixnbgames.com\/blog\/tratamiento-imagenes\/optimizar-imagenes-png-con-pngquant\/\">Seguir leyendo <span class=\"screen-reader-text\">  Reducir el tama\u00f1o de im\u00e1genes PNG con pngquant<\/span><span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":41,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11],"tags":[13,10,9,12],"language":[5],"_links":{"self":[{"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/posts\/31"}],"collection":[{"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/comments?post=31"}],"version-history":[{"count":14,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/posts\/31\/revisions"}],"predecessor-version":[{"id":67,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/posts\/31\/revisions\/67"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/media\/41"}],"wp:attachment":[{"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/media?parent=31"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/categories?post=31"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/tags?post=31"},{"taxonomy":"language","embeddable":true,"href":"https:\/\/www.pixnbgames.com\/blog\/wp-json\/wp\/v2\/language?post=31"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}