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
;
;
; 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
). 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
. La única línea que nos interesa es
(script-fu-round-corners image drawable 15 TRUE 8 8 15 TRUE FALSE)
lo demás no es más que morralla
. 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í