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

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.