Reducir el “peso” de las imágenes puede ser muy útil si tenemos un blog o utilizamos cualquier servicio online. Es algo que se puede hacer fácilmente con un editor gráfico como GIMP con su extensión “save for web” o desde la terminal tirando de comandos.
Hoy toca esto último y lo vamos a hacer con los programas jpegoptim y optipng, que como habréis adivinado nos cubren archivos con extensión JPG/JPEG y PNG, respectivamente.
jpegoptim
- Empecemos con jpegoptim y con su sintaxis más básica (atención: esto sobrescribe el archivo original):
jpegoptim archivo.jpg archivo.jpg 3292x2260 24bit N Exif JFIF [OK] 4800621 --> 4635945 bytes (3.43%), optimized
- Si deseamos que la imagen resultante vaya a otro directorio para no sobreescribirla lo hacemos con “-d” y a continuación ponemos la ruta:
jpegoptim -d ~/blog file.jpg
- Se pueden optimizar varios archivos a la vez:
jpegoptim imagen1.jpg imagen2.jpg imagen3.jpg
- O utilizar comodines para abarcar todos los archivos contenidos en un directorio. Basta situarse con la terminal dentro del mismo y ejecutar:
jpegoptim *.jpg
- El algoritmo de reducción utilizado por defecto es bastante conservador, comprimiendo sin apenas perdida.
Si queremos afinar más, y no nos importa perder algo de calidad para que el archivo ocupe menos, lo podemos hacer con el parámetro “-m” estableciendo un valor entre 0 y 100. Por ej.
jpegoptim -m70 archivo.jpg
- Pero eso es jugar un poco a la lotería, así que vamos a ver como podemos simular esa compresión antes de ejecutarla y ver cuanto espacio ahorramos:
jpegoptim -n -t -m70 archivo.jpg archivo.jpg 3292x2260 24bit P JFIF [OK] 4483338 --> 619895 bytes (86.17%), optimized
- Si queremos especificar un valor determinado (100 kB en este ejemplo) lo hacemos con la opcion -S
jpegoptim -S 100k archivo.jpg
optipng
- optipng más el nombre del archivo es la opción más sencilla (y si!, también sobrescribe el original):
optipng archivo.png ** Processing: archivo.png 1638x1212 pixels, 4x8 bits/pixel, RGB+alpha Reducing image to 3x8 bits/pixel, RGB Input IDAT size = 6285295 bytes Input file size = 6287644 bytes Trying: zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 5611598 zc = 9 zm = 8 zs = 0 f = 5 IDAT size = 3397112 Selecting parameters: zc = 9 zm = 8 zs = 0 f = 5 IDAT size = 3397112 Output IDAT size = 3397112 bytes (2888183 bytes decrease) Output file size = 3397169 bytes (2890475 bytes = 45.97% decrease)
- Por supuesto podemos optimizar varios archivos PNG a la vez:
optipng imagen1.png imagen2.png imagen3.png. Imagen4.png
- utilizar comodines como vimos en el caso anterior:
optipng *.png
- e incluso hacerlo de forma recursiva (con jpegoptim no probé, pero supongo que debería funcionar igual), para optimizar en directorios y subdirectorios:
find -type f -name "*.png" -exec optipng {} \;
Instalación
Tanto jpegoptim como optipng están en los repositorios de las principales distribuciones GNU/Linux, así que los podéis instalar con vuestro gestor de software favorito, en mi caso para Antergos lo hice con un simple:
sudo pacman -S jpegoptim optipng
Mas opciones de ejecución están disponibles en el manual y la ayuda de ambos programas.
Creo que para los PNG también está pngcrush…
Buenísimo!
Yo siempre he usado el simple image reducer xd… una maravilla… pero este tipo de chucherías me encantan 😀
Prueba los colores solarizados de terminal :p
En Terminator no me acabaron de gustar 🙂
Muy bueno! Gracias por compartir. Lo voy a probar ya que tengo 1861 imágenes en el blog.
a mi me da miedo contar las mías XD
Yo utilizo leanify que hace más o menos lo mismo. 🙂
Gracias, amigo