
Últimamente ando trasteando bastante con las funciones de Imagemagick. Tiene diversas utilidades que permiten la transformación de imágenes desde la linea de comandos. Todo esto claro que se puede hacer con un entorno grafico como Gimp o mediante aplicaciones de procesamiento por lotes, pero a mi me gusta automatizar estas tareas para luego por ejemplo usar estos scripts directamente desde nautilus. Este script que proporciono no es un nautilus script propiamente dicho (habria por ejemplo que abrir una ventana de dialogo con zenity que te preguntara el texto a añadir), pero puede servir de base o como ejemplo.
Lo que hace es obtener las dimensiones de la imagen original, y despues crea un rectangulo negro y una linea blanca sobre la imagen a la par que añade el texto que le indiquemos.
Resultado
El script
#!/bin/bash
#La imagen
IMAGEN="$1"
#El texto que le quiero añadir
TEXTO="$2"
#Recupero dimensiones imagen
DIMENSIONES=`identify -format "%wx%h" $IMAGEN`
echo "Dimensiones: $DIMENSIONES"
x=`echo $DIMENSIONES | awk -F"x" '{print $1}'`
y=`echo $DIMENSIONES | awk -F"x" '{print $2}'`
echo $x
echo $y
# el limite sera el tamaño de y menos 30
lim=$(($y-30))
# y ya utilizo convert para generar la nueva imagen añadiendo un rectangulo negro, una linea blanca y el texto
convert "$IMAGEN" -gravity SouthEast -font helvetica -pointsize 20 -fill black -draw "rectangle 0,$lim $x,$y" -fill white -draw "line 0,$lim $x,$lim" -draw "text 13 1 "$TEXTO"" ${IMAGEN}_texto.jpg

Nota: Logicamente para que funcione, tienes que tener instalado “imagemagick” en tu sistema:
Debian y derivados: sudo aptitude install imagemagick
Arch: sudo pacman -S imagemagick
OpenSuse: sudo zypper in imagemagick

Yo modifique el script para que me permita elegir en que posicion insertar el texto. Este es el resultado y mas abajo les dejo el link de descarga.
#!/bin/bash
#La imagen
IMAGEN="$1"
#El texto que le quiero añadir
TEXTO="$2"
#Recupero dimensiones imagen
POSICION="$3"
DIMENSIONES=`identify -format "%wx%h" $IMAGEN`
echo "Dimensiones: $DIMENSIONES"
x=`echo $DIMENSIONES | awk -F"x" '{print $1}'`
y=`echo $DIMENSIONES | awk -F"x" '{print $2}'`
echo $x
echo $y
# el limite sera el tamaño de y menos 30
lim=$(($y-30))
# y ya utilizo convert para generar la nueva imagen añadiendo un rectangulo negro, una linea blanca y el texto
case $POSICION in
cen)
Pos="South";;
der)
Pos="SouthEast";;
izq)
Pos="SouthWest";;
esac
convert "$IMAGEN" -gravity $Pos -font helvetica -pointsize 20 -fill black -draw "rectangle 0,$lim $x,$y" -fill white -draw "line 0,$lim $x,$lim" -draw "text 13 1 "$TEXTO"" ${IMAGEN}_texto.jpg
Como usar el script
Abren su editor de textos preferido y copian el contenido del script (o lo descargan desde el link de abajo). Lo guardan con el nombre que quieran, en mi caso titular, y luego le dan permisos de ejecucion. Para titular una imagen ejecutan:
./titular archivo_de_imagen "texto que quieren agregar" <posicion>
<posicion> es:
izq=para colocar el texto a la izquierda de la imagen
der=para colocar el texto a la derecha de la imagen
cen=para colocar el texto en el centro de la imagen
Ej:
./titular taringa.jpg "Taringa - Inteligencia Colectiva" cen
Esto colocara el texto "Taringa - Inteligencia Colectiva" en el centro de la parte inferior de la imagen. La imagen resultante se guarda con el nombre original agregando la palabra texto al final asi que no se preocupen que no sobrescribe el archivo original
Espero que les sirva, saludos!
YAPA: Una imagen que me causo gracia (sin intensión de ofender a nadie)
Visto en UbuntuLife

