 | |  |
|
Páginas: 1 2 [3]
|
 |
|
Autor
|
Tema: Bordes (Leído 4438 veces)
|
|
elpecoso
|
 |
Re: Bordes
« Respuesta #30 : 24 de Octubre de 2007, 21:33:24 » |
|
Maese Redy, me casca el siguiente error...
marco: 36: Syntax error: "(" unexpected
la linea 36 me sale: POSICIONES=( "" southwest south southeast )
chau!
|
|
|
|
|
En línea
|
|
|
|
|
redy
|
 |
Re: Bordes
« Respuesta #31 : 25 de Octubre de 2007, 09:11:13 » |
|
¿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 A=( 1 2 3 4 5 ); echo ${A[@]} Si da error sustituye la línea 36 por algo como: 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 de Octubre de 2007, 09:18:55 por redy »
|
En línea
|
|
|
|
|
elpecoso
|
 |
Re: Bordes
« Respuesta #32 : 25 de Octubre de 2007, 14:38:18 » |
|
muchas gracias Redy, lo estaba ejecutando mal... usaba el sh
he visto que si la foto es grande, el texto mal posicionado
chau!
|
|
|
|
|
En línea
|
|
|
|
|
redy
|
 |
Re: Bordes
« Respuesta #33 : 25 de Octubre de 2007, 17:17:00 » |
|
he visto que si la foto es grande, el texto mal posicionado
Lo he modificado. A ver ahora 
|
|
|
|
|
En línea
|
|
|
|
|
Colegota
|
 |
Re: Bordes
« Respuesta #34 : 02 de Diciembre de 2007, 01:22:44 » |
|
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
|
|
|
|
|
En línea
|
|
|
|
|
redy
|
 |
Re: Bordes
« Respuesta #35 : 02 de Diciembre de 2007, 21:43:40 » |
|
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...
|
|
|
|
|
En línea
|
|
|
|
|
Colegota
|
 |
Re: Bordes
« Respuesta #36 : 03 de Enero de 2008, 19:28:49 » |
|
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
|
|
|
|
|
En línea
|
|
|
|
|
redy
|
 |
Re: Bordes
« Respuesta #37 : 28 de Marzo de 2008, 03:42:37 » |
|
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: #!/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 de Abril de 2008, 20:59:45 por redy »
|
En línea
|
|
|
|
jofial
Milenari@

Mensajes: 1804
Φ el · sobre la y
|
 |
Re: Bordes
« Respuesta #38 : 19 de Octubre de 2008, 20:02:14 » |
|
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
|
|
|
|
|
En línea
|
No hay nada peor que una imagen brillante de un concepto borroso. Ansel Adams
|
|
|
|
Colegota
|
 |
Re: Bordes
« Respuesta #39 : 19 de Octubre de 2008, 20:42:01 » |
|
Buenas, uno que es un vago...  [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
|
|
|
|
|
En línea
|
|
|
|
jofial
Milenari@

Mensajes: 1804
Φ el · sobre la y
|
 |
Re: Bordes
« Respuesta #40 : 19 de Octubre de 2008, 22:14:49 » |
|
[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.  Nos vemos el viernes.... Saludos Jose
|
|
|
|
|
En línea
|
No hay nada peor que una imagen brillante de un concepto borroso. Ansel Adams
|
|
|
|
redy
|
 |
Re: Bordes
« Respuesta #41 : 20 de Octubre de 2008, 09:52:43 » |
|
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í.
|
|
|
|
|
En línea
|
|
|
|
|
Colegota
|
 |
Re: Bordes
« Respuesta #42 : 20 de Octubre de 2008, 13:24:17 » |
|
Buenas, Todas las distribuciones que conozco meten ~/bin en el path por defecto,...
¡a buenas horas me entero yo de esto!  Bueno, nunca es tarde. Gracias.  Saludos, Colegota
|
|
|
|
|
En línea
|
|
|
|
|
 |