Autor Tema: Gimp: Aplicar el mismo tratamiento a muchas fotos  (Leído 27497 veces)

tat

  • Moderador
  • Palizas oficial
  • *****
  • Mensajes: 9622
  • Patch y buenas vibraciones
    • Libertat
Re: Gimp: Aplicar el mismo tratamiento a muchas fotos
« Respuesta #30 on: 19 dic 2008, 06:05 am »
Lo espero con impaciencia, guapamente Victor  :-)

JoRdi

  • Palizas oficial
  • *
  • Mensajes: 10191
Re: Gimp: Aplicar el mismo tratamiento a muchas fotos
« Respuesta #31 on: 19 dic 2008, 06:24 am »
Buenas,

Este fin de semana intentaré poner un mini-manual con algunas explicaciones y webs de interés, y si tengo tiempo, pues intentaré crear ya un bucle para automatizarlo.

Fenomenal Víctor :ok: , estás hecho un monstruo socio :plas: :plas: :plas:

Saludos, JoRdi :-)

invisible

  • Moderador
  • Palizas oficial
  • *****
  • Mensajes: 8097
    • INVItARTE
Re: Gimp: Aplicar el mismo tratamiento a muchas fotos
« Respuesta #32 on: 19 dic 2008, 09:04 am »
Cuidadme a este chico que es un filón. q:)
"Si quieres ver lo invisible, observa con atención lo visible."
                                                     Manuel Álvarez Bravo (1902-2002)

tomas.senabre

  • Papá del Mes
  • Trimilenari@
  • *
  • Mensajes: 3370
    • La Mirada Hecha Pedazos
Re: Gimp: Aplicar el mismo tratamiento a muchas fotos
« Respuesta #33 on: 19 dic 2008, 20:36 pm »
Pues sí que es un filón, esperamos ese manualote   :)
"Hay tres maneras de adquirir sabiduría: primero, por la reflexión, que es la más noble; segundo, por imitación, que es la más sencilla; y tercero, por la experiencia, que es la más amarga". Confucio

VictorSanchez2

  • Consolidad@
  • ****
  • Mensajes: 214
    • # echo VictorSanchez2 >> SoftwareLibre
Re: Gimp: Aplicar el mismo tratamiento a muchas fotos
« Respuesta #34 on: 20 dic 2008, 12:47 pm »
Ya parece que funciona bien y aplica el efecto por ejemplo a todos los .jpg que se encuentre en un directorio que tenemos. Os pego el código y luego unas breves explicaciones, prometo meterme más en detalle cuando tenga un rato  :bola:

Código: [Seleccionar]
;
;
; Ejemplos:
; (round-corners-fotolibre "/home/vs2/img/*.jpg")
; (round-corners-fotolibre "/home/vs2/img/*.xcf")
; (round-corners-fotolibre "/home/vs2/img/fotolibre*.jpg")
;
; Origen: http://lists.xcf.berkeley.edu/lists/gimp-user/2006-November/009015.html
;
; Modificaciones: VictorSanchez2
; - Error en los parámetros de unbreakupstr
;
(define (round-corners-fotolibre pattern)
(let* (
(filelist (cadr (file-glob pattern 1)))
(xcfname)
(jpgname)
(filename)
(image)
(drawable)
)
(while filelist
(set! filename (car filelist))
(print (list "Procesando:" filename))
(set! image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(set! xcfname (unbreakupstr (butlast (strbreakup filename ".")) "."))
(set! xcfname (string-append xcfname ".xcf"))
(set! drawable (car (gimp-image-get-active-layer image)))
(script-fu-round-corners image drawable 15 TRUE 8 8 15 TRUE FALSE)
(gimp-file-save RUN-NONINTERACTIVE image drawable xcfname xcfname)
(set! image (car (gimp-file-load RUN-NONINTERACTIVE xcfname xcfname)))
(set! jpgname (unbreakupstr (butlast (strbreakup xcfname ".")) "."))
(set! jpgname (string-append jpgname "-new"))
(set! jpgname (string-append jpgname ".jpg"))
(set! drawable (car (gimp-image-flatten image)))
(gimp-file-save RUN-NONINTERACTIVE image drawable jpgname jpgname)
(gimp-image-delete image)
(set! filelist (cdr filelist))
(print (list "...finalizado:" filename))
)
)
)

Da un error al final porque la lista está vacía, a ver si lo arreglo, pero no tiene mayores consecuencias porque cuando ocurre ya se ha procesado todo.

El procedimiento que se sigue:

1. Abrir Gimp y después Exts -> Script-Fu -> Consola de Script-Fu
2. Copiar el código de arriba entero para declarar la función. Los comentarios van indicados con ';' y no se procesarán. Intro.
3. Ejecutar un ejemplo: (round-corners-fotolibre "/home/vs2/img/*.jpg")
    en el que se pasa como parámetro todas las imágenes .jpg que tenemos en nuestra carpeta (cambiar según gustos  :globo:). Intro.
4. En la carpeta que hemos pasado (en este caso /home/vs2/img), quedará una imagen intermedia .xcf y la definitiva procesada a la que se le ha añadido el sufijo -new sin machacar el original (también modificable fácilmente en el código)
5. Nada más, ya está todo, así podremos aplicar el efecto a 1 o 1000 fotos del tirón.

Si alguien tiene parámetros preferidos para el redondeo de esquinas, que los ponga, me encantaría saber su opinión  :ains:. La única línea que nos interesa es

Código: [Seleccionar]
(script-fu-round-corners image drawable 15 TRUE 8 8 15 TRUE FALSE)
lo demás no es más que morralla  :-XX. Si queréis ver qué es cada parámetro de la función, en la consola de Script-Fu, le dáis Examinar y ahí escribís el nombre de la función, en este caso script-fu-round-corners y os mostrará a la derecha lo que es cada parámetro.

Espero que sirva de ayuda a alguien, según vaya sacando tiempo intentaré seguir investigando y lo pongo por aquí  :beta:

JoRdi

  • Palizas oficial
  • *
  • Mensajes: 10191
Re: Gimp: Aplicar el mismo tratamiento a muchas fotos
« Respuesta #35 on: 20 dic 2008, 13:29 pm »
Buenas,

Gracias por la información Víctor q:)

Saludos, JoRdi :-)

invisible

  • Moderador
  • Palizas oficial
  • *****
  • Mensajes: 8097
    • INVItARTE
Re: Gimp: Aplicar el mismo tratamiento a muchas fotos
« Respuesta #36 on: 21 dic 2008, 14:31 pm »
 :plas: :plas: :plas:
Salud, VS2:
Y gracias otra vez por el curro que te has pegado. :buf:
"Si quieres ver lo invisible, observa con atención lo visible."
                                                     Manuel Álvarez Bravo (1902-2002)

VictorSanchez2

  • Consolidad@
  • ****
  • Mensajes: 214
    • # echo VictorSanchez2 >> SoftwareLibre
Re: Gimp: Aplicar el mismo tratamiento a muchas fotos
« Respuesta #37 on: 21 dic 2008, 14:38 pm »
De nada hombre, es por un buen fin. Ya que me he pegado con ello, pues compartirlo con vosotros por si le puede servir a alguien.

Ahora que ya me manejo con las cosillas básicas para empezar a tratar las imágenes, pues ahora intentaré ir profundizando un poco más en el tema. Si alguien encuentra algunos Script-Fu interesantes por la red y quiere compartirlos con nosotros, seguro que más de uno se lo agradeceremos  :??

jofial

  • Palizas oficial
  • *
  • Mensajes: 9513
  • Φ el · sobre la y
Re: Gimp: Aplicar el mismo tratamiento a muchas fotos
« Respuesta #38 on: 21 dic 2008, 18:15 pm »
Gracias VictorSanchez2, por el esfuerzo y por compartirlo.

Saludos

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


VictorSanchez2

  • Consolidad@
  • ****
  • Mensajes: 214
    • # echo VictorSanchez2 >> SoftwareLibre
Re: Gimp: Aplicar el mismo tratamiento a muchas fotos
« Respuesta #39 on: 22 dic 2008, 20:55 pm »
A partir de búsquedas por Internet y  la ayuda de la consola de Gimp, he hecho otra versión del Script-Fu que redondea las esquinas de muchas imágenes a la vez.

Tenía un problema, y es que si lo guardaba como .jpg perdía la transparencia del fondo, que en este caso para mi es imprescindible. Así que me he puesto a investigar para ver cómo podía borrar la capa blanca del fondo y posteriormente guardarlo como .png conservando la transparencia.

Aquí os pego el resultado por si os sirve de ayuda:

Código: [Seleccionar]
;
;
; Ejemplo de uso
;
; 1. Pegar todo este código en la consola Script-Fu de Gimp
; 2. Llamar a la función que se acaba de declarar escribiendo en la consola:
; (round-corners-fotolibre2 "/tmp/img/*.jpg")
; 3. En el directorio /tmp/img dejará una foto .xcf con el efecto aplicado y otra .png por cada .jpg que haya
;
(define (round-corners-fotolibre2 pattern)
(let* (
(filelist (cadr (file-glob pattern 1)))
(xcfname)
(pngname)
(filename)
(image)
(drawable)
)
(while filelist
(set! filename (car filelist))
(print (list "Procesando:" filename))
(set! image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(set! xcfname (unbreakupstr (butlast (strbreakup filename ".")) "."))
(set! xcfname (string-append xcfname ".xcf"))
(set! drawable (car (gimp-image-get-active-layer image)))

(script-fu-round-corners image drawable 15 TRUE 8 8 15 TRUE FALSE)

;Borrar la capa blanca del fondo para tener un fondo transparente
(let*
(
(imageLayers (cadr (gimp-image-get-layers image)))
(imageLayersNumber (car (gimp-image-get-layers image)))
)
(let*
(
(layerCount 0)
)
(while (< layerCount imageLayersNumber)
(let*
(
(layer (aref imageLayers layerCount))
)
(if (= 0 (strcmp "Background" (car (gimp-drawable-get-name layer)) ))
(gimp-image-remove-layer image layer)())
)
(set! layerCount (+ layerCount 1))
)
)
)

(gimp-file-save RUN-NONINTERACTIVE image drawable xcfname xcfname)
(set! image (car (gimp-file-load RUN-NONINTERACTIVE xcfname xcfname)))

;Guardar como .png. La versión file-png-save no preserva el color de los pixels transparentes
;así que se utiliza la versión 2
(set! pngname (unbreakupstr (butlast (strbreakup xcfname ".")) "."))
(set! pngname (string-append pngname ".png"))
(set! drawable (car (gimp-image-merge-visible-layers image 0)))
(file-png-save2 RUN-NONINTERACTIVE image drawable pngname pngname 0 9 0 0 0 1 1 0 1)

(gimp-image-delete image)
(set! filelist (cdr filelist))
(print (list "...finalizado:" filename))
)
)
)
« Última Modificación: 22 dic 2008, 21:21 pm por VictorSanchez2 »

VictorSanchez2

  • Consolidad@
  • ****
  • Mensajes: 214
    • # echo VictorSanchez2 >> SoftwareLibre
Re: Gimp: Aplicar el mismo tratamiento a muchas fotos
« Respuesta #40 on: 22 dic 2008, 21:20 pm »
Estoy viendo que el copiar del foro el código y pegarlo directamente en la consola Script-Fu falla posiblemente por los caracteres de fin de línea.

Lo he subido aquí www.victorsanchez2.com/fotolibre/round-corners-fotolibre-png.scm para que se pueda bajar y luego ya pegar en la consola.

VictorSanchez2

  • Consolidad@
  • ****
  • Mensajes: 214
    • # echo VictorSanchez2 >> SoftwareLibre
Re: Gimp: Aplicar el mismo tratamiento a muchas fotos
« Respuesta #41 on: 22 dic 2008, 21:23 pm »
He visto que era culpa mía, que he copiado el paréntesis del final dos veces en el copy-paste, en principio debería funcionar bien copiando todo directamente desde el foro y pegando en la consola Script-Fu. Sorry  :sonroja2:

JoRdi

  • Palizas oficial
  • *
  • Mensajes: 10191
Re: Gimp: Aplicar el mismo tratamiento a muchas fotos
« Respuesta #42 on: 23 dic 2008, 06:41 am »
He visto que era culpa mía, que he copiado el paréntesis del final dos veces en el copy-paste...

Un fallo lo puede tener cualquiera, lo importante, es que ahora ya está arreglado ;)

Saludos, JoRdi :-)

VictorSanchez2

  • Consolidad@
  • ****
  • Mensajes: 214
    • # echo VictorSanchez2 >> SoftwareLibre
Re: Gimp: Aplicar el mismo tratamiento a muchas fotos
« Respuesta #43 on: 23 dic 2008, 07:33 am »
Gracias Jordi, cierto es que me tiré un rato viendo qué narices podría ser jejeje.

Me está gustando esto de los Script-Fu. Con lo poco que me gustaba LISP en la carrera y pensaba que no lo volvería a usar en la vida y mira tú por dónde, lo estoy cogiendo hasta cariño  :yahoo:

VictorSanchez2

  • Consolidad@
  • ****
  • Mensajes: 214
    • # echo VictorSanchez2 >> SoftwareLibre
Re: Gimp: Aplicar el mismo tratamiento a muchas fotos
« Respuesta #44 on: 24 dic 2008, 11:26 am »
Ya he empezado con un manual de iniciación para los Script-Fu, lo estoy poniendo en mi página personal: http://victorsanchez2.com/

Si a alguien le interesa y está dispuesto a comentar/corregir/colaborar..., yo encantado  :chin: