Cambiar el formato de imagen con ImageMagick
Podemos cambiar de formato una imagen con convert. Si queremos cambiar de jpg a png una imagen, podemos escribir:
convert imagen.jpg imagen.png
Para convertir de png a jpg, el comando es el mismo:
convert imagen.png imagen.jpg
Con esto tendremos los dos ficheros: imagen.jpg e imagen.png.
Si queremos crear nuevos ficheros png a partir de los jpg de un directorio, podemos hacerlo con:
convert *.jpg *.png
Pero los nombra numerándolos a partir de 0 con un nombre de fichero nada identificativo.
Veamos los ficheros generados:
$ ls *.png '*-0.png' '*-12.png' '*-1.png' '*-4.png' '*-7.png' '*-10.png' '*-13.png' '*-2.png' '*-5.png' '*-8.png' '*-11.png' '*-14.png' '*-3.png' '*-6.png' '*-9.png'
Para solucionar esto, podemos recorrer el directorio con un for y extraer el nombre de fichero sin la extensión para asignárselo al nuevo fichero:
#!/bin/bash for i in $(ls) do if [ ${i##*.} == $1 ] then convert $i ${i%%.*}.$2 fi done
Para usarlo, simplemente le indicaremos la extensión de los ficheros que queramos convertir y la extensión de los nuevos ficheros a generar:
./changeformat.sh jpg png