Cambiar el tamaño del lienzo con convert -extent

Para cambiar el tamaño del lienzo de una imagen, convert dispone del parámetro -extent, que permite recortar o ampliar el tamaño del lienzo al tamaño indicado.

Su uso más básico es:

convert original.jpg -extent 500x200 destino.jpg

Que cambiará el tamaño del lienzo a 500 píxeles de anchura por 200 píxeles de altura tomando como referencia el píxel 0x0 (la esquina superior izquierda). Si la altura o la anchura es mayor que el tamaño indicado, recortará la imagen en ese valor y si es menor, ampliará el lienzo.

Si no se le indica un color para el fondo, y convert amplía el lienzo, por defecto, colocará un fondo blanco. Para cambiar otro color, se lo indicaremos con -background:

convert original.jpg -background black -extent 500x200 destino.jpg

O, si lo preferimos, podremos usar un fondo transparente, pero tendremos que usar un formato que admita transparencias, como .png:

convert original.jpg -background transparent -extent 500x200 destino.png

Otra de las opciones que nos puede interesar es cambiar el punto de gravedad para no tener que recortar desde la esquina superior izquierda. Lo indicaremos con -gravity:

convert original.jpg -background transparent -gravity center -extent 500x200 destino.png

Y, si lo que queremos es cambiar el tamaño del lienzo de todas las imágenes de un directorio, lo podemos hacer recorriendo ese directorio con un for:

#!/bin/bash

dirsource="./imagenes_originales/"
dirdest="./imagenes_adaptadas/"

if [ ! -d $dirdest ]
then
    mkdir $dirdest
fi

for filename in $(ls $dirsource)
do
    pathname=$dirsource$filename
    destiny=$dirdest$filename
    convert $pathname -gravity Center -extent 800x445 $destiny
done

Un comentario en «Cambiar el tamaño del lienzo con convert -extent»

Deja una respuesta

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