Bash tip: Convertir png en jpg (mogrify)

Ya sabemos que con convert (ImageMagick) podemos hacer auténticas locuras combinando una -o varias- foto(s) y la linea de comandos. Pero cuando no queremos hacer tantas locuras y solo tenemos que cambiar de formato y extensión cerca de 2000 fotos podemos simplificar el trabajo con mogrify (también en ImageMagick):
$ ls
-rwxr--r-- 1 oscar oscar  5110 2008-02-13 10:50 advancewarsds.png
-rwxr--r-- 1 oscar oscar  5104 2008-02-13 10:52 alvinylasardillas.png
-rwxr--r-- 1 oscar oscar  4928 2008-02-13 10:53 animalcrossingnds.png
...
-rwxr--r-- 1 oscar oscar  5322 2008-02-14 17:16 yoshisisland.png
-rwxr--r-- 1 oscar oscar  5175 2008-02-14 17:17 yoshi_touch_go_nds.png
-rwxr--r-- 1 oscar oscar  4859 2008-02-14 12:45 zeldaphantomds.png
En el directorio que contiene esas tropecientas fotos hacemos un:
$ mogrify -format jpg *.png
¡Magia!:
$ ls
-rw-r--r-- 1 oscar oscar 12631 2008-03-13 10:16 advancewarsds.jpg
-rwxr--r-- 1 oscar oscar  5110 2008-02-13 10:50 advancewarsds.png
-rw-r--r-- 1 oscar oscar 11956 2008-03-13 10:16 alvinylasardillas.jpg
-rwxr--r-- 1 oscar oscar  5104 2008-02-13 10:52 alvinylasardillas.png
-rw-r--r-- 1 oscar oscar 12700 2008-03-13 10:16 animalcrossingnds.jpg
-rwxr--r-- 1 oscar oscar  4928 2008-02-13 10:53 animalcrossingnds.png
...
-rwxr--r-- 1 oscar oscar  5322 2008-02-14 17:16 yoshisisland.png
-rw-r--r-- 1 oscar oscar 12953 2008-03-13 10:16 yoshi_touch_go_nds.jpg
-rwxr--r-- 1 oscar oscar  5175 2008-02-14 17:17 yoshi_touch_go_nds.png
-rw-r--r-- 1 oscar oscar 12432 2008-03-13 10:16 zeldaphantomds.jpg
-rwxr--r-- 1 oscar oscar  4859 2008-02-14 12:45 zeldaphantomds.png
Hemos ahorrado varias horas de trabajo. Aún así­ vemos que los nuevos jpg duplican a los antiguos png en tamaño. Al tratarse de imágenes pequeñas de 5K, podemos reducir la calidad de las mismas un 60% -por ejemplo- y ver si los resultados satisfacen nuestras necesidades. Para ello pasamos de nuevo el script:
$ mogrify -quality 60 -format jpg *.png
Atendiendo a los tamaños hemos reducido el jpg resultante:
$ ls
-rw-r--r-- 1 oscar oscar  3395 2008-03-13 10:29 advancewarsds.jpg
-rwxr--r-- 1 oscar oscar  5110 2008-02-13 10:50 advancewarsds.png
-rw-r--r-- 1 oscar oscar  3088 2008-03-13 10:29 alvinylasardillas.jpg
-rwxr--r-- 1 oscar oscar  5104 2008-02-13 10:52 alvinylasardillas.png
-rw-r--r-- 1 oscar oscar  3309 2008-03-13 10:29 animalcrossingnds.jpg
-rwxr--r-- 1 oscar oscar  4928 2008-02-13 10:53 animalcrossingnds.png
...
-rw-r--r-- 1 oscar oscar  3651 2008-03-13 10:29 yoshisisland.jpg
-rwxr--r-- 1 oscar oscar  5322 2008-02-14 17:16 yoshisisland.png
-rw-r--r-- 1 oscar oscar  3489 2008-03-13 10:29 yoshi_touch_go_nds.jpg
-rwxr--r-- 1 oscar oscar  5175 2008-02-14 17:17 yoshi_touch_go_nds.png
-rw-r--r-- 1 oscar oscar  3134 2008-03-13 10:29 zeldaphantomds.jpg
-rwxr--r-- 1 oscar oscar  4859 2008-02-14 12:45 zeldaphantomds.png
Atendiendo a calidades también podemos comprobarlo viendo las dos imágenes:
Mogrify en acción
El resultado es -en este caso- el deseado y hemos reducido en al menos 1K el tamaño de cada imagen. No es que sea demasiado pero es un argumento más a la hora de utilizar este tipo de herramientas.

About the author

Óscar
has doubledaddy super powers, father of Hugo and Nico, husband of Marta, *nix user, Djangonaut and open source passionate.