Hola,
desde que soy aficionado a la fotografía digital, una de las cosas que hago es enmarcar y titular las fotos que hago. Hasta ahora lo hacía mediante un script en el Gimp que era valido para ir de una en una pero no si necesitaba hacerlo con varias.
Para ello programé un pequeño script de Nautilus que me permita seleccionar varias imagenes y añadirle el marco y un título a todas.
Requisitos del script:
- Zenity
- Imagemagick
Para el funcionamiento del script hay que copiarlo dentro del Home del usuario a la carpeta /.gnome2/nautilus-scripts y darle permisos de ejecución. Ahora ya nos aparece en le menú contextual de Nautilus.
El script crea un borde blanco muy fino alrededor de la imagen y después un borde negro más grueso para enmarcar la imagen. Si solo quieres añadir el borde, hay que dejar en blanco el texto a añadir.
Para añadir el texto se usa la fuente Bitstream-vera por lo que es necesario tenerla instalada, aunque el usuario puede modificar el script para cambiarla. Tambien es necesario tener instalado los paquetes Zenity y Imagemagik.
El script crea una copia con el borde y título de la imagen original para evitar sobreescribirla.
Imagen original.
Imagen con el borde y título añadido por el script.
Código fuente del script:
#!/bin/bash #****************************************************************************************** # # ENMARCAR Y TITULAR # Versión= 1.0 # # Script de Nautilus que añade un borde negro exterior grueso y un borde blanco fino # a una imagen y en ese borde añade un título # Script programado y probado satisfactoriamente en Debian Lenny y Gnome 2.22.3 # Esta programado pensado en ejecutarse como un script de Nautilus aunque es posible # usarlo en consola pasandole como parámetro el nombre del fichero de la imagen. # DEPENDENCIAS # # Zenity (http://freshmeat.net/projects/zenity) # Necesario para generar los cuadros de dialogo del script # # Imagemagick (http://www.imagemagick.org/) # Contiene los programas convert y identify necesarios para crear el borde # INSTALACION: # 1. Copiar el script al directorio /home/usuario/.gnome2/nautilus-scripts # 2. Dar permisos de ejecución al script # 3. En este momento al pulsar con el botón derecho del ratón sobre una imagen nos # aparece el menú Scripts y dentro de el aparece el script Enmarcar y titular. # Copyright (C) 2009 Carlos Fco. Andión López # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # http://www.gnu.org/copyleft/gpl.html #****************************************************************************************** # Se comprueba que los programas necesarios para generar el borde estan presentes for command in convert identify do if [ ! $(which $command) ] then zenity --error --text "Falta el programa \"$command\" .\n Es necesario instalar el paquete ImageMagick." exit 1 fi done #Fuente usada para etiquetar la imagen, si no existe en el sistema se cierra el script #Se puede modificar la fuente según las preferencias del usuario FONT_TYPE="/usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf" if [ ! -f $FONT_TYPE ]; then zenity --info --text="Falta la fuente $FONT_TYPE.\n Es necesario instalarla en el sistema" exit 1 fi #Pantalla de dialogo de introduccion del texto que vamos usar para firmar la imagen y tamaño de fuente #y los tamaños de los bordes internos y externos IMX_TXT=`zenity --title='Marco y título' --text='¿Título?' --entry-text=$TEXT --entry` FONT_SIZE=`zenity --title='Marco y título' --text='¿Tamaño del título?' --entry-text='20' --entry` BORDER_IN_SIZE=`zenity --title='Marco y título' --text='¿Tamaño borde interior? Valores recomendados entre 1-5' --entry-text='3' --entry` BORDER_OUT_SIZE=`zenity --title='Marco y título' --text='¿Tamaño borde exterior? Valores recomendados entre 1 y 10' --entry-text='6' --entry` #Se inicializa la barra de progreso de zenity FILES_COUNT="$#" CURRENT_FILE=1 for arg; do #Se renombra el archivo para evitar sobreescribir el original y crear uno nuevo con el borde IMX_FILE_TARGET='tm_'"$arg" #Calculamos las dimensiones de la imagen original IMX_WIDTH=`identify -format "%w" "$arg"` IMX_HEIGHT=`identify -format "%h" "$arg"` #Calculamos el tamaño de los bordes interno e externo teniendo en cuenta la orientación de la imagen. #El tamaño de los bordes es un % sobre el tamaño de la imagen.El borde interior se calcula para que sea #más fino que el exterior BORDER_SIZE=$IMX_WIDTH if [ $IMX_HEIGHT -gt $IMX_WIDTH ]; then BORDER_SIZE=$IMX_HEIGHT fi BORDER_IN=$(($BORDER_SIZE * $BORDER_IN_SIZE / 1000 )) BORDER_OUT=$(($BORDER_SIZE * $BORDER_OUT_SIZE / 100 )) #Añadimos el borde interno y externo a la imagen convert "$arg" -bordercolor white -border $BORDER_IN "$IMX_FILE_TARGET" convert "$IMX_FILE_TARGET" -bordercolor black -border $BORDER_OUT "$IMX_FILE_TARGET" #Calculamos las dimensiones de la imagen con los bordes añadidos IMX_WIDTH_TARGET=`identify -format "%w" "$IMX_FILE_TARGET"` IMX_HEIGHT_TARGET=`identify -format "%h" "$IMX_FILE_TARGET"` #Calculamos la posición X,Y para añadir el texto en la parte inferior izquierda X=$(($IMX_WIDTH_TARGET - $BORDER_IN - $BORDER_OUT - $IMX_WIDTH )) Y=$(($IMX_HEIGHT_TARGET - $BORDER_OUT/2 + - $BORDER_IN )) #Añadimos el texto en el borde creado convert "$IMX_FILE_TARGET" -font $FONT_TYPE -fill "#FFFFFF" -pointsize $FONT_SIZE -stroke "#FFFFFF" -draw "text `echo $X`,`echo $Y` '$IMX_TXT'" "$IMX_FILE_TARGET" #Actualizo la barra de progreso de Zenity percentage=$(echo "$CURRENT_FILE * 100 / $FILES_COUNT" | bc) CURRENT_FILE=$((CURRENT_FILE + 1)) echo $percentage done | zenity --progress --title="Procesando imagenes" --auto-close



RSS - Posts
