mamedu :: transformar_imagenes
mamedu.gif

Programación y linux

  • Contenido pendiente de traducción

22 de June, 2010

Archivos

Nombre Tamaño Fecha MIME código V
transformar_imagenes 4.9Kb 07 de Septiemre, 2010 text/x-sh [Ver] [V]
#!/bin/bash ## Este programa esta sujeto a la licencia GNU/GPL. # # En esta página podeis encontrar una traducción en castellano # http://gugs.sindominio.net/licencias/gples.html # # y aquí la versión original http://www.gnu.org/licenses/gpl-3.0.html # Si se lanza el programa para saber si debe publicarse en la web # contestamos y salimos [[ "$1" = "--publico" ]] && echo 'SI' && exit 0 autor='Eduardo Magrané' mail='eduardo@mamedu.com' licencia='GNU/GPL 3.0' web='http://www.mamedu.com' prog=`basename $0` version='0.1' descripcion=" Transformar una imagen a formato jpg con la anchura o altura especificada por el usuario. Practico para una conversión rápida de imágenes para por ejemplo enviar por email. Ejemplo de utilización de zenity. " pendiente=" Las imágenes transformadas se guardan en el mismo directorio que las originales, estaría bien poder elegir un directorio diferente" dependencias='convert zenity' # colores cnormal="\033[0m" cerror="\033[1;31m" caviso="\033[1;37m" ccomentario="\033[47m\033[1;30m" cafirmativo="\033[1;32m" color() { if [ "$var_color" = 'si' ] ; then local c=${1:-$cnormal} ; echo -e "${!c}" ; fi } # Variables configurables var_fich_conf="$HOME/.${prog}rc" desc_var_fich_conf="Archivo de configuración" var_color=si desc_var_color='Presentar colores' var_anchura=450 desc_var_anchura='Anchura por defecto' var_altura=600 desc_var_altura='Altura por defecto' var_sufijo='_m' desc_var_sufijo='Sufijo para imagen transformada' # Si tenemos fichero de configuración recogemos lo insertamos [[ -e "$var_fich_conf" ]] && source $var_fich_conf function info() { echo echo "$prog" | sed s/./=/g echo "$prog" echo "$prog" | sed s/./=/g echo echo ":version: $version" echo ":licencia: $licencia" echo ":autor: $autor" echo ":web: $web" echo } function help() { echo echo "uso: $prog " echo if [ -n "$descripcion" ] ; then echo Descripción echo -e "$descripcion" fi if [ -n "$dependencias" ] ; then echo 'Programas externos necesarios' for dep in $dependencias ; do echo -e " - $dep" ; done echo fi if [ -n "${!var_*}" ] ; then echo 'Variables configurables' for var in ${!var_*} ; do d="desc_$var" ; echo -e " - ${!d}: ${!var}" ; done echo fi if [ -n "$pendiente" ] ; then echo Pendiente echo -e "$pendiente" fi } function comprobar_dependencias() { local salir=no echo echo Comprobar dependencias for d in $dependencias ; do s="`whereis $d`" s="${s/#*:}" if [ -z "$s" ] ; then echo " - $d `color cerror`[NO]`color cnormal`" salir=si else echo " - $d `color cafirmativo`[si]`color cnormal`" fi done if [ "$salir" = "si" ] ; then echo echo `color cerror`Necesitas instalar los programas no encontrados`color` exit 1 fi } while [ -n "$1" ] ; do case "$1" in -h|-help|--help) help ; exit ;; -info) info ; help ; exit ;; --dependencias|-d) comprobar_dependencias ; exit ;; *) break ;; esac done modificar_anchura=0 modificar_altura=0 if [ "$1" = "" ] ; then # Escoger imágenes imagenes="$(zenity --title="Selecciona una imagen" --file-selection --multiple )" s='' DIFS="$IFS" ; IFS=$'\|' for f in $imagenes ; do s="$s \"$f\"" done IFS="$DIFS" eval "set - $s" fi if [ -z "$1" ] ; then echo "Sin imágenes" exit else echo Imágenes: $* fi if [ "$DISPLAY" != "" ] ; then SALIDA=$(zenity --list --title "Convirtiendo imágenes" --text "Encoje una opción" --column "Opciones" 'No modificar tamaño' 'Modificar por altura' 'Modificar por Anchura') echo $SALIDA if [ "$SALIDA" = "Modificar por Anchura" ] ; then anchura=$(zenity --title "Anchura" --entry --text "Anchura en pixeles") [[ "$anchura" != "" ]] && modificar_anchura=1 elif [ "$SALIDA" = "Modificar por altura" ] ; then altura=$(zenity --title "Altura" --entry --text "Altura en pixeles") [[ "$altura" != "" ]] && modificar_altura=1 fi fi # convertir imágenes a formato jpg DIFS="$IFS" IFS=$'\n' while [ "$1" != "" ] ; do echo -e "\nConvirtiendo: " $1 # Eliminamos extensión extension=$(echo $1 | awk -v FS='.' '{print $(NF)}') echo $extension cmd="awk -v FS='.${extension}' '{print \$1}'" f2="$(echo $1 | eval $cmd)" echo -e "a $f2-peque.jpg" if [ $modificar_anchura = 1 ] ; then cmd='convert -geometry x$anchura "$1" "${f2}${sufijo}_an${anchura}.jpg"' elif [ $modificar_altura = 1 ] ; then cmd='convert -geometry $altura "$1" "${f2}${sufijo}_al${altura}.jpg"' else cmd='convert "$1" "${f2}${sufijo}.jpg"' fi if [ "$DISPLAY" = "" ] ; then eval $cmd else eval $cmd | zenity --progress --auto-close fi shift 1 done IFS="$DIFS"
Administrar

Nombre:

Contraseña: