Autor Tema: Bordes  (Leído 46014 veces)

elpecoso

  • Milenari@
  • *
  • Mensajes: 1466
  • Esto es lo que somos
    • La madriguera del escobrice
Re: Bordes
« Respuesta #30 on: 24 oct 2007, 17:33 pm »
Maese Redy, me casca el siguiente error...

marco: 36: Syntax error: "(" unexpected

la linea 36 me sale:
POSICIONES=( "" southwest south southeast )


chau!
Me gustaría cambiar el mundo, pero no me dan el código fuente
<- La ultima de La madriguera del escobrice

redy

  • Moderador
  • Bimilenari@
  • *****
  • Mensajes: 2897
  • Gnudista
    • Esteropes El Cíclope
Re: Bordes
« Respuesta #31 on: 25 oct 2007, 05:11 am »
¿Que version de bash tienes?  echo $BASH_VERSION

Porque sólo se me ocurre que la asignación de arrays en la forma ARRAY=( Valor valor valor .... ) no funcione en tu versión porque es muy antigua. O que haya una comilla sin cerrar antes de esa línea que nos trastoque todo el invento.

Prueba a meter en una consola el comando

Código: [Seleccionar]
A=( 1 2 3 4 5 ); echo ${A[@]}
Si da error sustituye la línea 36 por algo como:
Código: [Seleccionar]
eval POSICIONES{[1]=southwest,[2]=south,[3]=southeast}
Si el comando anterior va bien. Busca si antes de esa línea hay unas comillas traspapeladas....
« Última Modificación: 25 oct 2007, 05:18 am por redy »
Admiro a la gente que sabe contar historias solamente con sus fotos, porque en el fondo las fotos son como los chistes; si tienes que explicarlas es que no son buenas...


elpecoso

  • Milenari@
  • *
  • Mensajes: 1466
  • Esto es lo que somos
    • La madriguera del escobrice
Re: Bordes
« Respuesta #32 on: 25 oct 2007, 10:38 am »
muchas gracias Redy, lo estaba ejecutando mal... usaba el sh

he visto que si la foto es grande, el texto mal posicionado

chau!

Me gustaría cambiar el mundo, pero no me dan el código fuente
<- La ultima de La madriguera del escobrice

redy

  • Moderador
  • Bimilenari@
  • *****
  • Mensajes: 2897
  • Gnudista
    • Esteropes El Cíclope
Re: Bordes
« Respuesta #33 on: 25 oct 2007, 13:17 pm »
he visto que si la foto es grande, el texto mal posicionado

Lo he modificado. A ver ahora :?
Admiro a la gente que sabe contar historias solamente con sus fotos, porque en el fondo las fotos son como los chistes; si tienes que explicarlas es que no son buenas...


Colegota

  • Palizas oficial
  • *
  • Mensajes: 8188
  • ¡Me faltan carretes!
    • ¡Me faltan carretes!
Re: Bordes
« Respuesta #34 on: 01 dic 2007, 22:22 pm »
Buenas,

por cierto, Redy, ahora que los scripts ya parecen estables. Casi creo que sería bueno sacarlos a dos hilos separados, uno para el normal y otro para el de estilo "Invi". Es que hay que recorrerse dos o tres páginas de mensajes hasta dar con el adecuado.
Los que hemos seguido el hilo nos enteramos, pero los que vienen de nuevo es fácil que se pierdan.

Saludos,
Colegota
[Canon EOS 50 40D (sin diapos ni nada)] [Escáner Minolta DSE 5400] [Vuescan] [El GIMP] [Galería] [Página de Viajes]

redy

  • Moderador
  • Bimilenari@
  • *****
  • Mensajes: 2897
  • Gnudista
    • Esteropes El Cíclope
Re: Bordes
« Respuesta #35 on: 02 dic 2007, 18:43 pm »
por cierto, Redy, ahora que los scripts ya parecen estables.

Pues ahora que lo dices acabo de recordar que tenía pendiente arreglar el segundo que no sitúa bien los textos... A ver si tengo un rato y me pongo, y luego además los separo y los publico en mi página...


Admiro a la gente que sabe contar historias solamente con sus fotos, porque en el fondo las fotos son como los chistes; si tienes que explicarlas es que no son buenas...


Colegota

  • Palizas oficial
  • *
  • Mensajes: 8188
  • ¡Me faltan carretes!
    • ¡Me faltan carretes!
Re: Bordes
« Respuesta #36 on: 03 ene 2008, 16:28 pm »
Buenas,

por cierto, Redy, ahora que los scripts ya parecen estables.

Pues ahora que lo dices acabo de recordar que tenía pendiente arreglar el segundo que no sitúa bien los textos... A ver si tengo un rato y me pongo, y luego además los separo y los publico en mi página...

Cierto. Al no conseguir mi intento inicial estaba probando a adaptar este y me he encontrado con lo de los textos.

Por si te sirve, trato de hacer una versión en fondo negro. Lo digo por lo de usar la variable del color para todos los fondos. También intentaré ponerle el filetillo dorado y puede que las letras con la sombra igual que en los intentos mencionados.

Saludos,
Colegota
[Canon EOS 50 40D (sin diapos ni nada)] [Escáner Minolta DSE 5400] [Vuescan] [El GIMP] [Galería] [Página de Viajes]

redy

  • Moderador
  • Bimilenari@
  • *****
  • Mensajes: 2897
  • Gnudista
    • Esteropes El Cíclope
Re: Bordes
« Respuesta #37 on: 28 mar 2008, 00:42 am »
Pues ahora que lo dices acabo de recordar que tenía pendiente arreglar el segundo que no sitúa bien los textos...

Creo que ahora ya si:

Código: [Seleccionar]
#!/bin/bash

#
#       Pone un marco con sombra a las imágenes que le digamos
#
#   Basado en el script dropsh de Jesús J. Del Carpio
#   http://www.isgeek.net/files/dropsh
#
#

# Valores por defecto
TIT1="http://www.fotolibre.net"
TIT2="%d"
COPY="$(date +%Y) Redy Rodriguez"
FONT1="/usr/share/fonts/TTF/VeraBI.ttf"
FONT2="$FONT1"
FONT="$FONT1"
CCFONT="/usr/share/fonts/ttf/decoratives/cc-icons.ttf"
ICONOS='c,b,a'
ANCHO=""
DTAMANO1=""  # Los tamaños de fuente calculan luego como 3/5 del ancho
DTAMANO2=""
DTAMANO3=""
DMARCO=""    # Tamaño del marco por defecto
POS1="center"
POS2="west"
POSCOPY="southeast"
PREFIJO="s_"
_SOMBRA="8"
_BORDE="20"
COLOR="ORANGE"
TINTA="#101010"

# Array para traducir los valores numéricos 1-6 a las posiciones que
# hay que pasar a imagemagick con el parámetro gravity
POSICIONESC=( "" southwest south southeast )
POSICIONES=( "" west center east)

macrotit() ## Resuelve las macros de los títulos
{
  local inicio resto1 resto result
  if [ ! -z "$1" ]; then
    inicio="${1%%\%*}"
    resto1="${1:$(( ${#inicio} + 1 )):1}"
    resto="${1:$(( ${#inicio} + 2 ))}"
    case $resto1 in
       F )  # Nombre del fichero
          result="$(basename "$2")"
       ;;
       f )  # Nombre del fichero sin extensión
          result="$(basename "$2" ".${2##*.}")"
          ;;
       d )  # Fecha de disparo, o si no existe del fichero
          result="$(exiftool -d "%x %X" -DateTimeOriginal -S -s "$2")"
          if [ -z "$result" ]; then
             result="$(date -r "$2" "+%x %X")"
          fi
          ;;

       D )  # Fecha del fichero
          result="$(date -r "$2" "+%x %X")"
          ;;
       s )  # Velocidad del obturador
          result="$(exiftool -S -s -ShutterSpeed "$2")"
          ;;
       a )  # Apertura del diafragma
          result="$(exiftool -Aperture -S -s "$2")"
          ;;
       l )  # Longitud focal de la lente
          result="$(exiftool -FocalLength -S -s "$2")"
          ;;
       L )  # Longitud focal equivalente en 35mm (o si no se puede obtener, la real)
          result="$(exiftool -FocalLengthIn35mmFormat -S -s "$2")"
          if [ -z "$result" ]; then
                result="$(exiftool -FocalLength -S -s "$2")"
          fi
          ;;
       c )  # Comentario de usuario
          result="$(exiftool -UserComment -S -s "$2")"
          ;;
       C )  # Comentario de usuario, o si no existe, nombre del fichero
          result="$(exiftool -UserComment -S -s "$2")"
          if [ -z "$result" ]; then
               result="$(basename "$2")"
          fi
          ;;
       * )
          result="$resto1"
          ;;
    esac
    ## Se podría hacer de otra forma pero preferí la recursividad
    ## La funcion resuelve el primer % y luego se llama a si misma con
    ## el resto hasta que el resto es la cadena vacía.
    echo -n "${inicio}${result}$(macrotit "${resto}" "$2")"
  fi
}




while [ $# -gt 0 ]; do

   PARAM="$1"
   case "$PARAM" in
        "--help"|--usage|-h)
           echo ""
           echo "Uso:"
           echo ""
           echo "  $0 --help|--usage|-h Muestra esta ayuda"
           echo "  $0 [opciones] img-1 [... img-n]  [... [opciones] img-n1 [... img-nn]]"
           echo ""
   cat <<FINDETEXTO
  opciones disponibles:

   --tamanomarco|-g Ancho del marco en pixels.

   --titulo1|-t1    "Puede haber hasta 2 títulos (t1 y t2)"
   --titulo2|-t2    "t2 por defecto es la fecha de disparo"
           En los título se pueden usar las siguentes macros:
               %F Nombre del fichero
               %f Nombre del fichero sin extensión
               %d Fecha de disparo, o si no existe del fichero
               %D Fecha del fichero
               %s Velocidad del obturador
               %a Apertura del diafragma.
               %l Longitud focal de la lente.
               %L Longitud focal equivalente en 35mm
                  (o si no se puede obtener, la real).
               %c Comentario de usuario.
               %C Comentario de usuario, o si no existe,
                  nombre del fichero.

   --copyright|-m   "Mensaje de copyright que aparece a la derecha"
   --iconos|-i      Iconos previos al mensaje de copyright:
                     c=(CC), a=SA, b= BY, f=(=), n=NC, m=Sampling,
                     s=Share, p=PD r=Remix, C:Logo CC
                       para dejar un espacio pequeño entre símbolos
                       usar ',', para espacio mayor ' ', por ejemplo:
                       -i "c b,a"

   --font3|-f       Estilo de letra o fichero de fuente .ttf para mensaje
                    de copyright
   --font1|-f1      Fuente para el título1
   --font2|-f2      Fuente para el titulo2 (por defecto la misma que título1)
   --tamano|-s      Tamaño de la letra en puntos para copyright
   --tamano1|-s1    Tamaño de letra para título1 (por defecto = título)
   --tamano2|-s2    Tamaño de letra para título2 (por defecto = título)

   --ptitulo1|-p1   Posición para título1 (Por defecto 2)
   --ptitulo2|-p2   Posición para título2 (Por defecto 1)
   --pcopy|-q       Posición para copyright (Por defecto 3)

                Las posicioones posibles son:
                1 - izquierda     
                2 - centrado     
                3 - derecha       
               
   --borde|-b       Tamaño del borde
   --sombra|-h      Tamaño de la sombra
   --color|-c       Color del borde
   --tinta|-i       Color del texto
FINDETEXTO
           exit 0
        ;;
        "--titulo"|"-t")
           shift
           TIT="$1"
        ;;
        "--titulo1"|"-t1")
           shift
           TIT1="$1"
        ;;
        "--titulo2"|"-t2")
           shift
           TIT2="$1"
        ;;

        "--copyright"|"-m")
           shift
           COPY=$1
        ;;

        "--iconos"|"-i")
           shift
           ICONOS=$1
        ;;

        "--font"|"-f")
           shift
           FONT=$1
        ;;

        "--font1"|"-f1")
           shift
           FONT1=$1
        ;;

        "--font2"|"-f2")
           shift
           FONT2=$1
        ;;

        "--tamano"|"-s")
           shift
           DTAMANO=$1
        ;;


        "--tamano1"|"-s1")
           shift
           DTAMANO1=$1
        ;;


        "--tamano2"|"-s2")
           shift
           DTAMANO2=$1
        ;;

        "--borde"|"-b")
           shift
           DBORDE=$1
        ;;
        "--sombra"|"-h")
           shift
           DSOMBRA=$1
        ;;
        "--tinta"|"-i")
           shift
           TINTA=$1
        ;;
        "--color"|"-c")
           shift
           COLOR=$1
        ;;



        "--ptitulo1"|"-p1")
           shift
           if [ "$(( $1 ))"  -gt 0 -a "$(( $1 ))"  -le 3  ]; then
              POS1=${POSICIONES[$1]}
           fi
        ;;

        "--ptitulo2"|"-p2")
           shift
           if [ "$(( $1 ))"  -gt 0 -a "$(( $1 ))"  -le 3  ]; then
              POS2=${POSICIONES[$1]}
           fi
        ;;

        "--pcopy"|"-q")
           shift
           if [ "$(( $1 ))"  -gt 0 -a "$(( $1 ))"  -le 3  ]; then
              POSCOPY=${POSICIONESC[$1]}
           fi
        ;;
        "--tamanomarco"|"-g")
           shift
           DMARCO=$1

        ;;

        *)
        if [ -f "$PARAM" ]; then
           IN="$PARAM"
           OUT="$(dirname "$PARAM")/${PREFIJO}$(basename "$PARAM")"
           imageSize="$(identify -format "%w %h" "$IN")"
           imageX="${imageSize%% *}"
           imageY="${imageSize##* }"
           if [ $imageX -gt $imageY ]; then MAXsize=imageX; else MAXsize=imageY; fi

           if !(( DMARCO >= 1 )); then
               MARCO="$(( MAXsize/25+1 ))"
           else
               MARCO="$DMARCO"
           fi
           
           if (( DBORDE >= 1 )); then
               BORDE=$DBORDE         
           else
               BORDE=$_BORDE
           fi

           if (( DSOMBRA >= 1 )); then
               SOMBRA=$DSOMBRA         
           else
               SOMBRA=$_SOMBRA
           fi

           if (( DTAMANO >= 1 )); then
               TAMANO=$DTAMANO         
           else
               TAMANO="$((MARCO/3+1))"
           fi
           if (( DTAMANO1 >= 1 )); then
               TAMANO1=$DTAMANO1         
           else
               TAMANO1="$((MARCO/2+1))"
           fi

           if (( DTAMANO2 >= 1 )); then
               TAMANO2=$DTAMANO2         
           else
               TAMANO2="$((MARCO/3+1))"
           fi
           
           MTIT1=$(macrotit "$TIT1" "$IN")
           MTIT2=$(macrotit "$TIT2" "$IN")
           
           echo "Poniendo marco a $IN -> $OUT"

           convert \
              \( "$IN" -modulate 80 +contrast +contrast +contrast\
              -colorspace gray \
              -channel RGBA \
              -bordercolor "$COLOR" \
              -border "$(( SOMBRA*2 ))x$(( SOMBRA*2 ))" \
              -blur "0x$((SOMBRA/5+5))" \
              -shave "${SOMBRA}x${SOMBRA}" \
              -gravity northwest \
              "$IN" -colorspace RGB -compose src-in -composite \
              -bordercolor "$COLOR" -border "${BORDE}x${BORDE}" \
              -gravity southeast \
              -crop "+$(( SOMBRA*2 ))+$(( SOMBRA*2 ))" \
              \( -background "$COLOR" -size "$((imageX+2*BORDE))"x"$MARCO" xc:"$COLOR" \
              -fill "$TINTA" \
              -gravity "$POS1" -font "$FONT1" -pointsize "$TAMANO1" -draw "text $((BORDE * ( ${#POS1}!=6) )),0 '$MTIT1'" \
              -gravity "$POS2" -font "$FONT2" -pointsize "$TAMANO2" -draw "text $((BORDE * ( ${#POS2}!=6) )),0 '$MTIT2'" \) \
              -append \
                  \( -background "$COLOR" -size 0x0 -fill "$TINTA" -pointsize \
                  "$(( TAMANO * 100 / 75 ))" \
                  -font "$CCFONT" label:"$ICONOS" \
                  -font "$FONT" -pointsize "$TAMANO" \
                  label:"$COPY" +append \) \
                  -gravity "$POSCOPY" -geometry +$((BORDE * ( ${#POSCOPY}!=5) ))+"$TAMANO" \) \
                  -composite -compose src-in \
              "$OUT"
        else
                echo "$1 : parámetro o nombre de fichero incorrecto. Use -h para ayuda"
        fi
        ;;
  esac
  shift
done


Además el borde se le puede poner en cualquier color (Le puse el naranja por defecto para hacer pruebas pero lo podeis cambiar, línea 31: COLOR="ORANGE", Ya sabeis que se puede usar la forma #RRGGBB como en la web).

Con respecto a lo del fondo negro, o fondos oscuros en general no sé que tal quedaría la sombra...

Lo acabo de probar y no queda mal del todo, aunque este tipo de marco personalmente me gusta con el borde blanco...

« Última Modificación: 07 abr 2008, 16:59 pm por redy »
Admiro a la gente que sabe contar historias solamente con sus fotos, porque en el fondo las fotos son como los chistes; si tienes que explicarlas es que no son buenas...


jofial

  • Palizas oficial
  • *
  • Mensajes: 9497
  • Φ el · sobre la y
Re: Bordes
« Respuesta #38 on: 19 oct 2008, 16:02 pm »
Hola redy,

Como puedo conseguir que se ejecute el macro, sin tener que tenerlo en la carpeta donde alojo las imágenes. En /bin?  hay que tenerlo dado de alta en algún script de inicio?

Saludos

Jose
No hay nada peor que una imagen brillante de un concepto borroso.
Ansel Adams


Colegota

  • Palizas oficial
  • *
  • Mensajes: 8188
  • ¡Me faltan carretes!
    • ¡Me faltan carretes!
Re: Bordes
« Respuesta #39 on: 19 oct 2008, 16:42 pm »
Buenas,

uno que es un vago...  8-)

Código: [Seleccionar]
[colegota@localhost ~]$ /home/colegota/talleres/poner_marco_2008-13 -g 28 -t "David, verano del 2008" da*

Como lo suelo hacer con cierta frecuencia lo tengo "a tiro de flecha" en el terminal (vamos que le doy a la flcha arriba para que me salgan las últimas órdenes, siempre tengo un terminal abierto en cada escritorio). Pero bueno,  que si lo quieres hacer elegante, añade el path de tus propios ejecutables a $PATH y no tienes que andar moviendo a /bin que es de root.

Saludos,
Colegota
[Canon EOS 50 40D (sin diapos ni nada)] [Escáner Minolta DSE 5400] [Vuescan] [El GIMP] [Galería] [Página de Viajes]

jofial

  • Palizas oficial
  • *
  • Mensajes: 9497
  • Φ el · sobre la y
Re: Bordes
« Respuesta #40 on: 19 oct 2008, 18:14 pm »
Código: [Seleccionar]
[colegota@localhost ~]$ /home/colegota/talleres/poner_marco_2008-13 -g 28 -t "David, verano del 2008" da*

Como lo suelo hacer con cierta frecuencia lo tengo "a tiro de flecha" en el terminal (vamos que le doy a la flcha arriba para que me salgan las últimas órdenes, siempre tengo un terminal abierto en cada escritorio). Pero bueno,  que si lo quieres hacer elegante, añade el path de tus propios ejecutables a $PATH y no tienes que andar moviendo a /bin que es de root.

Es lo que hago yo, pero me parece incomodo

Gracias por el aporte.  q:)

Nos vemos el viernes....

Saludos

Jose
No hay nada peor que una imagen brillante de un concepto borroso.
Ansel Adams


redy

  • Moderador
  • Bimilenari@
  • *****
  • Mensajes: 2897
  • Gnudista
    • Esteropes El Cíclope
Re: Bordes
« Respuesta #41 on: 20 oct 2008, 05:52 am »
Todas las distribuciones que conozco meten ~/bin en el path por defecto, así que todas mis chapuzitas las meto en /home/redy/bin así puedo usarlas sin más que poner el nombre, como si estuviesen en /bin o en /usr/bin pero sin tener que andar haciéndote root para ponerlas allí.
Admiro a la gente que sabe contar historias solamente con sus fotos, porque en el fondo las fotos son como los chistes; si tienes que explicarlas es que no son buenas...


Colegota

  • Palizas oficial
  • *
  • Mensajes: 8188
  • ¡Me faltan carretes!
    • ¡Me faltan carretes!
Re: Bordes
« Respuesta #42 on: 20 oct 2008, 09:24 am »
Buenas,

Todas las distribuciones que conozco meten ~/bin en el path por defecto,...

¡a buenas horas me entero yo de esto!  :sonroja2: Bueno, nunca es tarde. Gracias. :)

Saludos,
Colegota
[Canon EOS 50 40D (sin diapos ni nada)] [Escáner Minolta DSE 5400] [Vuescan] [El GIMP] [Galería] [Página de Viajes]

jofial

  • Palizas oficial
  • *
  • Mensajes: 9497
  • Φ el · sobre la y
Re: Bordes
« Respuesta #43 on: 31 may 2009, 19:36 pm »
Hola redy,

desde que he cambiado al conejo cornudo (Ubuntu Jaunty) que el script me construye el marco, pero me deja la foto en B&N. Lo he probado desde el propio directorio donde tengo la imagen y desde el /bin (que es donde se puede usar indiscriminademente).

Tanto si uso extensiones JPG, como jpg. Me he repasado el script, pero no atino a ver cual pueda ser la causa.

Alguna sugerencia

Jose
No hay nada peor que una imagen brillante de un concepto borroso.
Ansel Adams


JoRdi

  • Palizas oficial
  • *
  • Mensajes: 10191
Re: Bordes
« Respuesta #44 on: 31 may 2009, 20:56 pm »
Buenas,

desde que he cambiado al conejo cornudo (Ubuntu Jaunty) que el script me construye el marco, pero me deja la foto en B&N.

Cuando uno es "cornudo" es que la cosa está muy negra, así que el pobre conejito está sufriendo por ello :-b , bromas a parte, es curioso lo que te ocurre, yo no te puedo ayudar :ejem: , supongo que redy si, suerte.

Saludos, JoRdi :-)