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 ghostscriptCon 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.pdfUna vez hecho esto, se puede comprimir un poquito más con pdftk:
$ sudo apt install pdftkUsando esta orden:
$ pdftk comprimido.pdf output MásComprimido.pdf compressPero 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"; doneVer este tutorial: https://github.com/readyready15728/misc/blob/master/epub-recompression.md
Hay que instalr gifsicle:
$ sudo apt install gifsicleLa orden para comprimir es:
$ gifsicle -b -n -O3 imagen.gifHay que instalar optipng:
$ sudo apt install optipngLa orden de comprimir es:
$ optipng -o7 -zm1-9 -clobber -fix -quiet -strip "all" imagen.pngUna vez hecho esto, podemos usar zopflipng, que se instala así:
# apt install zopfliY se usa así:
$ zopflipng -m -y comprimido.png más_comprimido.pngMi herramienta preferida es jpegoptim:
$ sudo apt install jpegoptimCon esta orden:
$ jpegoptim --strip-all -m75 -v foto.jpgOtra opción interesante es mozjpeg, que se puede usar con la herramienta cjpeg:
$ sudo apt install libjpeg-turbo-progsUso:
[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 advancecompSe usa así:
$ advzip -z -p -4 -k -i 1000 archivo.zipHay que usar la herramienta zopfli porque crea archivos compatibles con Gzip, pero son más pequeños. Para instalarla:
$ sudo apt install zopfliPrimero hay que descomprimir el archivo .gz original y borrarlo; después se comprime con zopfli:
$ gunzip archivo.gz && rm archivo.gz && zopfli -i100 archivoIncluye 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.jarPara usarla, hay que instalar antes una máquina virtual Java, así:
$ sudo apt install openjdk-11En 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.xmlTambié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.htmlPodemos usar el yui-compressor:
$ sudo apt install yui-compressorY comprimimos con esta orden:
$ yui-compressor --compilation_level ADVANCED_OPTIMIZATIONS --js original.js --js_output_file comprimido.js