Cuanto mayor sea la compresión de un archivo, menos ocupa. Aquí pongo cómo optimizar la compresión de varios tipos de archivos por si le sirve a alguien.
Hay que instalar ghostscript:
$ sudo apt install ghostscript
Con esta orden, que creo mejorable:
$ gs -q -dNOPAUSE -dBATCH -dSAFER -dNOPAUSE -dQUIET -dDetectDuplicateImages -dPDFA=2 -dPDFACompatibilityPolicy=1 -dSimulateOverprint=true -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dPDFSETTINGS=/screen -dEmbedAllFonts=true -dSubsetFonts=true -dAutoRotatePages=/None -dColorImageDownsampleType=/Bicubic -dColorImageResolution=128 -dGrayImageDownsampleType=/Bicubic -dGrayImageResolution=128 -dMonoImageDownsampleType=/Bicubic -dMonoImageResolution=128 -sOutputFile=comprimido.pdf original.pdf
Una vez hecho esto, se puede comprimir un poquito más con pdftk:
$ sudo apt install pdftk
Usando esta orden:
$ pdftk comprimido.pdf output MásComprimido.pdf compress
Pero cuidado porque esta orden puede quitar la tabla de contenidos y el índice.
Busca todos los archivos pdf y los comprime en uno nuevo, pero creo que habría que mejorarlo para que modifique el original:
$ find . -name '*.pdf' | while read pdf; do gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages -dCompressFonts=true -r150 -sOutputFile="${pdf}_new.pdf" "$pdf"; done
Ver este tutorial: https://github.com/readyready15728/misc/blob/master/epub-recompression.md
Hay que instalr gifsicle:
$ sudo apt install gifsicle
La orden para comprimir es:
$ gifsicle -b -n -O3 imagen.gif
Hay que instalar optipng:
$ sudo apt install optipng
La orden de comprimir es:
$ optipng -o7 -zm1-9 -clobber -fix -quiet -strip "all" imagen.png
Una vez hecho esto, podemos usar zopflipng, que se instala así:
# apt install zopfli
Y se usa así:
$ zopflipng -m -y comprimido.png más_comprimido.png
Mi herramienta preferida es jpegoptim:
$ sudo apt install jpegoptim
Con esta orden:
$ jpegoptim --strip-all -m75 -v foto.jpg
Otra opción interesante es mozjpeg, que se puede usar con la herramienta cjpeg:
$ sudo apt install libjpeg-turbo-progs
Uso:
[Completar] Ver https://github.com/mozilla/mozjpeg/blob/master/usage.txt y https://hacks.mozilla.org/2014/08/using-mozjpeg-to-create-efficient-jpegs/
No contemplo guetzli porque comprime peor que las otras dos.
Aquí https://stackoverflow.com/questions/19153122/image-compression-tools-via-command-line
Muchas veces se puede reducir un poquito el tamaño de los archivos ya comprimidos.
Probablemente, el formato de compresión más usado. Los archivos .zip contienen otros ficheros que pueden comprimirse. Internamente, los archivos de OpenDocument (LibreOffice), los libros .epub y los ficheros de Microsoft Office (ooxml) no son más que archivos zip con la extensión cambiada.
Para comprimir estos archivos, mi herramienta favorita es advzip, que es parte del paquete advancecomp:
$ sudo apt install advancecomp
Se usa así:
$ advzip -z -p -4 -k -i 1000 archivo.zip
Hay que usar la herramienta zopfli porque crea archivos compatibles con Gzip, pero son más pequeños. Para instalarla:
$ sudo apt install zopfli
Primero hay que descomprimir el archivo .gz original y borrarlo; después se comprime con zopfli:
$ gunzip archivo.gz && rm archivo.gz && zopfli -i100 archivo
Incluye todo lo que sea XML aunque tenga otra extensión:
- Scalable Vector Graphics (.svg)
- ATOM
- muchos más
Hay muchas herramientas con las que comprimir archivos xml, una de mis favoritas es htmlcompressor, que se puede descargar así:
$ wget -c https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/htmlcompressor/htmlcompressor-1.5.3.jar
Para usarla, hay que instalar antes una máquina virtual Java, así:
$ sudo apt install openjdk-11
En realidad, esta herramienta no comprime, sino minifica, es decir, elimina partes innecesarias de un archivo XML como espacios en blanco, cambios de línea, tabulaciones, comentarios..., que implica una reducción pequeña del tamaño del archivo. La orden es:
$ java -jar htmlcompressor-1.5.3.jar -t original.xml -o comprimido.xml
También podemos usar htmlcompressor, pero la orden es algo distinta:
$ java -jar htmlcompressor-1.5.3.jar -t html -c utf-8 --simple-doctype --remove-style-attr --remove-link-attr --remove-script-attr --simple-bool-attr --remove-js-protocol --remove-surrounding-spaces max original.html -o comprimido.html
Podemos usar el yui-compressor:
$ sudo apt install yui-compressor
Y comprimimos con esta orden:
$ yui-compressor --compilation_level ADVANCED_OPTIMIZATIONS --js original.js --js_output_file comprimido.js