logo
gfxgfx
 
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
gfx gfx
gfxgfx
 
Lo que nos gusta, lo que pensamos, lo que hacemos y porqué lo hacemos en Objetivos de FotoLibre
 
gfx gfx
gfx
35330 Mensajes en 3855 Temas por 763 Usuarios - Último usuario: piernas 06 de Enero de 2009, 12:28:21
*
gfx*InicioAyudaInicioBuscarIngresarRegistrarsegfx
gfxgfx
Páginas: [1] 2 3 Imprimir
Autor Tema: Bordes  (Leído 4686 veces)
Colegota
Moderador
***
Mensajes: 3569


¡Me faltan carretes!


WWW
Bordes
« : 21 de Noviembre de 2005, 20:23:01 »

Buenas,

vale, sí, el título es para llamar la atención.  Hum

En realidad quería hablar de "marcos", pero como los pikinglis les llaman "border", en algunos sitios los están traduciendo tal cual.

Se trata de que mis amigos viajeros de MapaMundi se están poniendo las pilas con el tema de las fotos y me preguntan por cómo hacer los marcos que ponemos nosotros. Así que creo que se empiezan a imponer unos "comos" de ImageMagick.

Si no hay más voluntarios me pongo yo, pero va a ser más lento porque estoy tan liado como siempre. Además hay por aquí a quien se le dan muy bien los cursos y controla bastante el tema.

Luego, cada uno podemos aportar nuestros scripts particulares como ejemplos de uso.

¿Alguien se anima?
En caso afirmativo creo que se debería mover el foro de ImageMagick a la Escuela ¿no? Uno de estos días voy a hacer limpieza de foros. Se admiten sugerencias.

Saludos,
Colegota
« Última modificación: 11 de Julio de 2007, 15:09:31 por Colegota » En línea

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


¡Me faltan carretes!


WWW
Re: Bordes
« Respuesta #1 : 11 de Julio de 2007, 15:41:31 »

Buenas,

una petición de Quo Vadis me ha recordado que en su día me comprometí a desgranar un cómo para scripts con ImageMagick.

Mientras encuentro un rato para detallar el funcionamiento os dejo el código por si alguien quiere usarlo tal cual o adaptárselo.

Se necesita tener instalado ImageMagick. Aunque la página está en Inglés, tiene abundantes ejemplos y los manuales son muy detallados y con bastantes ejemplos. Es multi-plataforma, aunque los ejemplos que muestro aquí son para GNU/Linux, adaptar los scripts a otro sistema no necesitan más cambio que el de la forma de identificar los parámetros y poco más.

Para usarlo hay que desplazarse al directorio o carpeta donde tenemos las imágenes y teclear (habiendo hecho el script ejecutable):

Código:
$ (path al script)/enmarca xx "(Lugar)"

xx sería el comienzo de los nombres de archivos a enmarcar. Por ejemplo, si las fotos se llaman img_nnnn.jpg, con

Código:
[colegota@alforjas fotos]$ /home/colegota/talleres/enmarca img "Mi pueblo"

Le pondría el texto "Mi pueblo" (sin las comillas) a todas las fotos que comiencen con "img" con extensión ".jpg" en nuevos ficheros cuyo nombre comienza ahora por "f-" (ej. f-img_1234.jpg" no modificando las originales. Se crean dos imágenes temporales 0marco.jpg y 0final.jpg que pueden ser eliminadas posteriormente o modificar el script para que lo haga.

El texto del script de nombre enmarca sería este:

Código:
for IMAGEN in $1*.jpg
do

  echo $IMAGEN

  cp $IMAGEN f-$IMAGEN

  IMAGEN=f-$IMAGEN

  convert $IMAGEN -resize 104%x106% 0marco.jpg

  mogrify -fill black -colorize 60% 0marco.jpg

  mogrify -mattecolor "#ffa200" -frame 2x2+1+1 $IMAGEN

  composite -gravity center $IMAGEN 0marco.jpg 0final.jpg

  convert 0final.jpg\
-fill "#ffa200" -font /usr/share/fonts/ttf/vera/VeraBI.ttf -draw "gravity southwest text 5,2 '$2'"\
-fill "#ffa200" -draw "gravity southeast text 5,2 'http://mapamundi.info/licenciaCCbysa'"\
$IMAGEN

done

Continuará...

Saludos,
Colegota
En línea

[Canon EOS 50 40D (sin diapos ni nada)] [Escáner Minolta DSE 5400] [Vuescan] [El GIMP] [Galería] [Página de Viajes]
redy
Moderador
***
Mensajes: 1438


Gnudista


WWW
Re: Bordes
« Respuesta #2 : 13 de Julio de 2007, 14:31:20 »

Así que creo que se empiezan a imponer unos "comos" de ImageMagick.

¿De imagemagick o de bash-scripting orientado a imagemagick?

Si es de lo segundo me gustaría darte un par de consejos para mejorar tu script:

Cuando metas nombres de ficheros en una variable refiérete a ella siempre entrecomillándola correctamente, usa "$IMAGEN" en lugar de $IMAGEN para evitar que nombres de ficheros con espacios sean expandidos a dos palabras.

Cuando uses jpg (algoritmo de compresión con pérdida), procura hacer todo lo posible en un solo paso, la mayorái de los comandos de imagemagick se pueden concatenar, si hacemos un paso, guardamos el jpg, hacemos otro, volvemos a guardar... acabamos teniendo una gran pérdida de información.

Un saludo.
En línea
Colegota
Moderador
***
Mensajes: 3569


¡Me faltan carretes!


WWW
Re: Bordes
« Respuesta #3 : 13 de Julio de 2007, 17:25:09 »

Buenas,

Así que creo que se empiezan a imponer unos "comos" de ImageMagick.

¿De imagemagick o de bash-scripting orientado a imagemagick?

De todo.  Silbar
Bueno, cuando escribí esa frase estaba pensando "en general" (o no pensando). Pero me refería más bien a usar ImageMagick desde la línea de comandos que a usar el GUI. Y eso inevitablemente lleva a los scripts. Pero vamos, ya sabes que puedes escribir cursos y comos de lo que quieras. smile3

Si es de lo segundo me gustaría darte un par de consejos para mejorar tu script:

Dos y los que hagan falta. Seguro que además de mi, hay más gente que te lo agradece. Aparte, como ya he comentado en ocasiones, yo estoy bastante oxidadillo y vago en lo que a programación se refiere y apenas me preocupo de que las cosas funcionen y sean sencillas. De cara a posibles reutilizaciones también procuro tener en cuenta que la gente que vaya a utilizarlo lo vea sencillo y no necesite saber programar o saber un poco. Pero eso no está reñido ni con la eficacia ni con hacer bien las cosas. Digamos que me puse a hacerlo y no me rompì demasiado el coco así que cualquier ayuda es bienvenida.

Cuando metas nombres de ficheros en una variable refiérete a ella siempre entrecomillándola correctamente, usa "$IMAGEN" en lugar de $IMAGEN para evitar que nombres de ficheros con espacios sean expandidos a dos palabras.

Cierto, y eso sí que debería haberlo tenido en cuenta. Lo que pasa es que como yo no suelo usar nombres así tampoco había tenido problemas. Si los hay con los textos a incluir en el segundo argumento y por eso el comillado (esta vez simple al estar dentro de un doble) al poner los textos.

Cuando uses jpg (algoritmo de compresión con pérdida), procura hacer todo lo posible en un solo paso, la mayorái de los comandos de imagemagick se pueden concatenar, si hacemos un paso, guardamos el jpg, hacemos otro, volvemos a guardar... acabamos teniendo una gran pérdida de información.

Aquí tienes más razón aún. Es más, al repasarlo he visto que reorganizando podía poner el texto directamente sobre el fondo en lugar de la resultante y evitando la necesidad de dos imágenes temporales.

Para crear el fondo que será el marco no me preocupa tanto la pérdida de calidad por lo que el tener varias operaciones sobre la imagen 0marco.jpg daría lo mismo.
Pero puestos a hacer las cosas bien, he visto que se pueden poner varias de las operaciones en un solo convert que combina la primera serie de modificaciones.
¿Se te ocurre como reducirlo más? ¿Se pueden encadenar comandos por "pipe"? Creo que aquí no valdría, pero así como con el convert y el mogify se puede hacer en una orden, tal vez el resultado de un convert o mogrify pudiera valer para entrada de un composite... Duda Por ejemplo los dos últimos.

Bueno, todo lo que se te ocurra es bienvenido.  good
Os dejo el código actual a falta de que pueda ser mejorado. Para los que aún no controláis los comandos, los explicamos cuando tengamos la versión final.

Código:
for IMAGEN in $1*.jpg
do

  echo "$IMAGEN"

  cp "$IMAGEN" f-"$IMAGEN"

  IMAGEN=f-"$IMAGEN"

  convert "$IMAGEN" -resize 104%x106%\
-fill black -colorize 60%\
-fill "#ffa200" -font /usr/share/fonts/TTF/VeraBI.ttf -pointsize 24 -draw "gravity southwest text 5,2 '$2'"\
-fill "#ffa200" -draw "gravity southeast text 5,2 'http://mapamundi.info/licenciaCCbysa'"\
0marco.jpg

  mogrify -mattecolor "#ffa200" -frame 2x2+1+1 "$IMAGEN"

  composite -gravity center $IMAGEN 0marco.jpg "$IMAGEN"

done

Saludos,
Colegota
En línea

[Canon EOS 50 40D (sin diapos ni nada)] [Escáner Minolta DSE 5400] [Vuescan] [El GIMP] [Galería] [Página de Viajes]
redy
Moderador
***
Mensajes: 1438


Gnudista


WWW
Re: Bordes
« Respuesta #4 : 14 de Julio de 2007, 00:08:05 »

¿Se te ocurre como reducirlo más? ¿Se pueden encadenar comandos por "pipe"?

Puede pero no es necesario. El convert y el mogrify son practicamente iguales con la salvedad de que el mogrify modifica la imagen y el convert crea una nueva. El composite permite combinar dos imágenes pero eso también se puede hacer con el convert con la opción -composite

Código:
convert imagen-base imagen-mascara -compose metodo -composite imagen destino

Donde pongo imagen-base e imagen-mascara no tienen porque ser las imágenes tal cual, les puedo dar el tratamiento que me interese. Se pueden usar paréntesis para establecer prioridades o para que quede más claro, pero hay que tener la precaución de ponerles un \ para que el bash no los interprete como parte del comando. Se me ocurre, sin modificar demasiado tu script, hacerlo todo en un solo paso de la siguiente forma:

Código:
for IMAGEN in $1*.jpg;
do

  echo "$IMAGEN"

  convert \( "$IMAGEN" -resize 104%x106%\
         -fill black -colorize 60%\
         -fill "#ffa200" -font /usr/share/fonts/TTF/VeraBI.ttf -pointsize 24 -draw "gravity southwest text 5,2 '$2'"\
         -fill "#ffa200" -draw "gravity southeast text 5,2 'http://mapamundi.info/licenciaCCbysa'" \)\
         \( $IMAGEN  -mattecolor "#ffa200" -frame 2x2+1+1 "$IMAGEN" -gravity center \) \
         -compose src-in -composite f-"$IMAGEN"

done


Otra cosa que haría es cambiar la forma de pasar los parámetros. Yo usaría algo como
Código:
enmarca [--tit "Titulo de la foto"] [--font "Fuente"] [--copyright "Texto del copyright"] Img-1 [ ... Img-n]

Añadiendo un poquito de código extra  al principio para interpretar y descartar con shift los parámetros pasados (a excepción de los ficheros) y sustituyendo el 'for i in $1*' por un 'for i in $*' pero igual es complicarse mucho para empezar ¿no? se supone que los que nos siguen no dominan el bash...
En línea
Colegota
Moderador
***
Mensajes: 3569


¡Me faltan carretes!


WWW
Re: Bordes
« Respuesta #5 : 14 de Julio de 2007, 00:52:51 »

Buenas,

fale, es que al principio no sabía si te referías a encadenar comandos u opciones.

El script es un buen intento smile3 pero no me hace lo que quería. Hay un despiste en el último paréntesis que debería ir en

Código:
         \( $IMAGEN  -mattecolor "#ffa200" -frame 2x2+1+1\) "$IMAGEN" -gravity center  \

aunque supongo que es un despiste de tecleo. Pero lo importante es que no me puedo quitar (creo) la 0marco.jpg porque en realidad lo que hace mi script es hacer esa imagen más grande para que al poner la original (con el filete dorado) encima, lo que sobra de la grande haga de marco. Tal vez debiera haber explicado el script antes de empezar...  Silbar

Con el script que has puesto he conseguido o que se vea la imagen doble corrigiendo lo del paréntesis, o que se vea (creo) la original solo quitando el -composite. Pero al menos a estas horas de la noche no acierto a ver por qué.  Sonroja

Respecto a los parámetros, pues mucho mejor, claro. Lo que pasa es que yo soy el primero que uso el bash con cuatro cosas y tendría que repasar para hacerlo chachi. De hecho soy tan vago que tengo diferentes copias con los textos o comandos modificados. Guiño
Los que nos siguen, pues creo que hay dos tipos. Los que lo único que quieren es un script para que le haga el marco, y los que quieran enredar un poco con él.
Para los primeros, lo mejor es lo que propones. Para los segundos, pues creo que mejor que sea sencillo para poder enredar un poco combinando con el manual y los ejemplos de ImageMagick y con esos presuntos comos que yo iba a hacer...  Sonroja

Saludos,
Colegota
En línea

[Canon EOS 50 40D (sin diapos ni nada)] [Escáner Minolta DSE 5400] [Vuescan] [El GIMP] [Galería] [Página de Viajes]
redy
Moderador
***
Mensajes: 1438


Gnudista


WWW
Re: Bordes
« Respuesta #6 : 14 de Julio de 2007, 17:28:40 »

Código:
El script es un buen intento smile3 pero no me hace lo que quería. Hay un despiste en el último paréntesis que debería ir en
Código:
   \( $IMAGEN  -mattecolor "#ffa200" -frame 2x2+1+1\) "$IMAGEN" -gravity center  \

Si hay un despiste, pese al cual, y extrañamente en mi versión de imagemagic funcionaba. Sobra el segundo $IMAGEN. El -gravity center fuera de los paréntesis está mejor, pero dentro también valdría, por cierto al primer $IMAGEN también le faltan las comillas.

Citar

aunque supongo que es un despiste de tecleo. Pero lo importante es que no me puedo quitar (creo) la 0marco.jpg porque en realidad lo que hace mi script es hacer esa imagen más grande para que al poner la original (con el filete dorado) encima, lo que sobra de la grande haga de marco. Tal vez debiera haber explicado el script antes de empezar...  Silbar

No, si está perfectamente explicado y eso mismo era lo que yo pretendía

Citar
Respecto a los parámetros, pues mucho mejor, claro. Lo que pasa es que yo soy el primero que uso el bash con cuatro cosas y tendría que repasar para hacerlo chachi. De hecho soy tan vago que tengo diferentes copias con los textos o comandos modificados. Guiño

Pues venga, lo pongo corregido y completillo (Probado con ImageMagick 6.2.9 y 6.3.2):

Código:
#! /bin/bash
TIT="Prueba de título"
COPY="http://mapamundi.info/licenciaCCbysa"
FONT="/usr/share/fonts/TTF/VeraBI.ttf"
TAMANO="20"


while [ ! -z "$1" ]; 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 ""
           echo "  opciones disponibles:"
           echo ""
           echo "   --titulo|-t     \"Título que aparece abajo a la izquierda\""
           echo "   --copyright|-c  \"Mensaje de copyright que aparece a la derecha\""
           echo "   --font|-f       Estilo de letra o fichero de fuente .ttf"
           echo "   --tamano|-s     Tamaño de la letra en puntos"
           echo ""
           exit 0
        ;;
        "--titulo"|"-t")
           shift
           TIT="$1"
        ;;

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

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

        "--tamano"|"-s")
           shift
           TAMANO=$1
        ;;
        *)
           if [ -f "$PARAM" ]; then
              IMAGEN="$PARAM"
              echo "$IMAGEN -> $TIT - $COPY - $FONT - $TAMANO"

               convert \( "$IMAGEN" -resize 104%x106%\
                  -fill black -colorize 60%\
                  -fill "#ffa200" -font "$FONT"  -pointsize "$TAMANO"\
                  -draw "gravity southwest text 5,2 '$TIT'"\
                  -fill "#ffa200" -draw "gravity southeast text 5,2 '$COPY'" \)\
                  \( "$IMAGEN"  -mattecolor "#ffa200" -frame 2x2+1+1 \) -gravity center \
                  -compose src-in -composite f-"$IMAGEN"
           fi
        ;;
  esac
  shift
done


¿Como se usa? Pues ejecutando el script con el parámetro --help --usage o -h te lo explica, pero así a grandes rasgos le podemos pasar simplemente una lista de fotos o una sola foto y si queremos antes de la foto o fotos que queramos podemos poner opciones como:  -t "título" -c "Mensaje de copyright" -f "fuente" -s "Tamaño". Las opciones tendrán validez en todas las fotos que pongamos a continuación. Quiero decir que si queremos por ejemplo poner el título "Paisaje nevado" a tres fotos y el título "Nocturno" a otras dos podemos poner:

Código:
./enmarca -t "Paisaje nevado" foto1.jpg foto2.jpg foto3.jpg -t Nocturno fotonocturna1.jpg fotonocturna2.jpg

Si alguien prefiere teclear más puede usar las opciones largas --título --copyright --font --tamano en lugar de -t -c -f y -s


Un ejemplo de como queda es:
Código:
./enmarca -c "http://creativecommons.org/licenses/by-sa/2.1/es/" -t "Ada jugando con una pompa" -f /usr/share/fonts/TTF/luximbi.ttf -s 18 ada*.jpg

(Foto original)


« Última modificación: 15 de Julio de 2007, 23:08:08 por redy » En línea
gecko
Consolidad@
****
Mensajes: 243



Re: Bordes
« Respuesta #7 : 14 de Julio de 2007, 20:25:01 »

Me parece muy interesante lo de tener un script para hacer bordes, pero, os estoy leyendo y no me entero de mucho. girl_sad

Se agradece un manual para torpes. Yo he llegado a que ImageMagick es un programa para trabajar con imagenes (fotos) en consola, pero ¿dónde se coloca el script? ¿en la carpeta de ImageMagick de /usr/share?

En línea
redy
Moderador
***
Mensajes: 1438


Gnudista


WWW
Re: Bordes
« Respuesta #8 : 15 de Julio de 2007, 12:38:24 »

Me parece muy interesante lo de tener un script para hacer bordes, pero, os estoy leyendo y no me entero de mucho. girl_sad

Se agradece un manual para torpes. Yo he llegado a que ImageMagick es un programa para trabajar con imagenes (fotos) en consola,

Exacto, ImageMagick es un programa que nos permite hacer muchísimas cosas desde consola, o desde cualquier lenguage de programación, perl, bash, python, c... 

Para usarlo desde consola tiene unos cuantos programas:

identify: Nos muestra información sobre una imágen.

convert: Básicamente transforma una imágen en otra, puede sur usasdo simplemente para convertir de un formato a otro, o para aplicar transformaciones y efectos a la imágen

mogrify: Mogrify permite aplicar transformaciones y efectos a una imágen, pero a diferencia de convert que siempre genera una imágen nueva sin tocar la original, mogrify trabaja sobre la imágen original modificándola. No vale por tanto para transformar de un formato a otro.

composite: Compone varias imágenes como si las superpusieras en capas (igual que las capas de gimp).

montage: junta varias imágenes como si fueran un puzzle, puedes ponerles bordes y otros efectos.

Luego están, aunque se usan menos:

compare: nos muestra las diferencias entre imágenes.

import: captura la imágen de una ventana.

conjure: Cualquiera de los comandos anteriores puede ser muy simple o muy complejo, pero para cosas realmente complejas, conjure es el intérprete de un lenguaje llamado MSL (Magick Scripting Language).

Y finalmente si queremos usar imagemagick desde un interfaz gráfico, o simplemente mostrar una imágen en una ventana tenemos display.

Para un vistazo más detallado a las posibilidades de cada uno de los comandos comando sugiero ejecutar:

Código:
«comando» -help

Citar
pero ¿dónde se coloca el script? ¿en la carpeta de ImageMagick de /usr/share?

En este caso lo que hicimos fué un script de bash, que es el lenguage en el que sueles introducir los comandos cuando escribes en una consola de linux. El script lo puedes poner dónde quieras. Si lo pones en la misma carpeta que tienes las imágenes, lo puedes ejecutar escribiendo

Código:
bash «nombre_del_script» parámetros ....

Si le modificas los permisos al script permitiéndo la ejecución, y la primera línea  del script es:
Código:
#! /bin/bash
Ya no es necesario que le pongas el bash delante, pero tendrás que poner el path completo de dónde está para ejecutarlo, por ejemplo
Código:
/home/redy/pruebas/«nombre_del_script» parámetros ....
O si está en el mismo directorio en el que estás trabajando simplemente:
Código:
./«nombre_del_script» parámetros ....

Si lo queremos hacer más sencillo todavía solo tienes que poner el script en una carpeta que esté en el path. El path es una lista de carpetas en las que se buscan programas para ejecutarlos. La puedes ver si das el comando
Código:
echo "$PATH" | tr : '\n'

Si pones tu script en cualquiera de esas carpetas, para ejecutarlo solo hace falta que pongas:
Código:
«nombre_del_script» parámetros ....

Generalmente en nuestro path tenemos /home/«usuario»/bin ese es un buen sitio para poner nuestros scripts, teniendo en cuenta que solo funcionarán cuando estemos con nuestro usuario, si queremos que funcionen para todos los usuarios del sistema los podemos poner en /usr/bin pero para eso tenemos que ser root.
« Última modificación: 15 de Julio de 2007, 12:44:07 por redy » En línea
Colegota
Moderador
***
Mensajes: 3569


¡Me faltan carretes!


WWW
Re: Bordes
« Respuesta #9 : 15 de Julio de 2007, 21:11:14 »

Buenas,

fale, este ya casi funciona.  Tongue No es por fastidiar, es broma. Lo que pasa es que faltan unas comillas dobles al final de esta línea:

Código:
           echo "  $0 [opciones] img-1 [... img-n]  [... [opciones] img-n1 [... img-nn]]

en la versión anterior me imagino que el problema era el $IMAGE repetido. Yo creí que era deliberado por eso no lo quité.
Pero ahora sí que me funciona.  good Y por supuesto está mucho más avanzado que el original.  Silbar

Con lo de explicarlo me refería a detallar cada comando para que se vea lo que va haciendo paso a paso. Hoy ando un poco vago pero si puedo mañana subo unos ejemplos y lo cuento. Digamos que lo mismo que explica Redy, pero con ejemplos. Más que nada por si alguien se lo quiere presonalizar.

Bueno, os dejo el script completo con lo de las comillas modificado para que no haya dudas. Redy, casi actualiza también el tuyo por si alguien no sigue leyendo. smile3

Código:
#! /bin/bash
TIT="Prueba de título"
COPY="http://mapamundi.info/licenciaCCbysa"
FONT="/usr/share/fonts/TTF/VeraBI.ttf"
TAMANO="20"


while [ ! -z "$1" ]; 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 ""
           echo "  opciones disponibles:"
           echo ""
           echo "   --titulo|-t     \"Título que aparece abajo a la izquierda\""
           echo "   --copyright|-c  \"Mensaje de copyright que aparece a la derecha\""
           echo "   --font|-f       Estilo de letra o fichero de fuente .ttf"
           echo "   --tamano|-s     Tamaño de la letra en puntos"
           echo ""
           exit 0
        ;;
        "--titulo"|"-t")
           shift
           TIT="$1"
        ;;

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

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

        "--tamano"|"-s")
           shift
           TAMANO=$1
        ;;
        *)
           if [ -f "$PARAM" ]; then
              IMAGEN="$PARAM"
              echo "$IMAGEN -> $TIT - $COPY - $FONT - $TAMANO"

               convert \( "$IMAGEN" -resize 104%x106%\
                  -fill black -colorize 60%\
                  -fill "#ffa200" -font "$FONT"  -pointsize "$TAMANO"\
                  -draw "gravity southwest text 5,2 '$TIT'"\
                  -fill "#ffa200" -draw "gravity southeast text 5,2 '$COPY'" \)\
                  \( "$IMAGEN"  -mattecolor "#ffa200" -frame 2x2+1+1 \) -gravity center \
                  -compose src-in -composite f-"$IMAGEN"
           fi
        ;;
  esac
  shift
done

Saludos,
Colegota
En línea

[Canon EOS 50 40D (sin diapos ni nada)] [Escáner Minolta DSE 5400] [Vuescan] [El GIMP] [Galería] [Página de Viajes]
redy
Moderador
***
Mensajes: 1438


Gnudista


WWW
Re: Bordes
« Respuesta #10 : 15 de Julio de 2007, 23:13:58 »

fale, este ya casi funciona.  Tongue No es por fastidiar, es broma. Lo que pasa es que faltan unas comillas dobles al final de esta línea:

Código:
           echo "  $0 [opciones] img-1 [... img-n]  [... [opciones] img-n1 [... img-nn]]

Pues si, buena corrección. Como dice la frase: '¡Hombre! Un falo lo tiene cualquiera...'  smile3  angel
En línea
redy
Moderador
***
Mensajes: 1438


Gnudista


WWW
Re: Bordes
« Respuesta #11 : 16 de Julio de 2007, 08:32:12 »

Es multi-plataforma, aunque los ejemplos que muestro aquí son para GNU/Linux, adaptar los scripts a otro sistema no necesitan más cambio que el de la forma de identificar los parámetros y poco más.

Bueno, si la otra plataforma es windows creo que lo mejor es instalar cygwin, con lo que tendras el bash, el propio imagemagick y todas las utilides que solemos usar en linux, y así podras usar los scripts que ponemos aquí sin ninguna modificación. Y para la gente que usa mac creo que hay algo similar llamado fink.

En línea
Colegota
Moderador
***
Mensajes: 3569


¡Me faltan carretes!


WWW
Re: Bordes
« Respuesta #12 : 16 de Julio de 2007, 16:22:52 »

Buenas,

Bueno, si la otra plataforma es windows creo que lo mejor es instalar cygwin, con lo que tendras el bash, el propio imagemagick y todas las utilides que solemos usar en linux, y así podras usar los scripts que ponemos aquí sin ninguna modificación...

la verdad es que hasta ahora no me había molestado en mirar en qué consistía el cygwin. Creía que era una especie de opuesto al Wine y no tenía idea de que viniese con tantos paquetes ya instalados.
Por si alguien le interesa, en la Wikipedia hay más información sobre Cygwin en la lengua de Cervantes.

Saludos,
Colegota
En línea

[Canon EOS 50 40D (sin diapos ni nada)] [Escáner Minolta DSE 5400] [Vuescan] [El GIMP] [Galería] [Página de Viajes]
redy
Moderador
***
Mensajes: 1438


Gnudista


WWW
Re: Bordes
« Respuesta #13 : 11 de Agosto de 2007, 04:09:37 »