Gimp

Un article de SoleïadeWiki.

Jump to: navigation, search

Extraire une image sur fond uni

Extraire une image sur fond uni - Tainted Words — ( trouvé sur la page transformer du blanc en transparence )

Traitement en série avec Gimp

Comment traiter en série et en batch un répertoire d'images avec gimp 2.0 (ou comment trouver une occasion pour apprendre le langage Scheme...)

Exemple : on a 80 images dans un dossier, et on veut leur appliquer le script-fu "round-corner" automatiquement, en moins de 2 minutes.

  • créer un petit script-fu qui ressemble à ça :

(define (script-fu-batch-round filein fileout) ;définition de la fonction

on charge l'image, on récupère l'ID, et on sauve dans la variable locale "image"
"car" sert à extraire le 1er et unique élément (un entier) de la liste retournée par gimp-file-load

(let* ((image (car (gimp-file-load 0 filein filein))))

(gimp-display-new image) ;décommenter pour faire afficher l'image

(let* ((layer (car(gimp-image-get-active-layer image)))) ;on récupère l'unique calque de l'image (script-fu-round-corners image layer 15 1 8 8 15 1 0) ;on applique le script-fu qu'on veut avec les bons paramètres (let* ((layer (car(gimp-image-flatten image)))) ;on applatit l'image

(gimp-displays-flush)

(gimp-file-save 1 image layer fileout fileout) ;on sauve (gimp-quit 1) ))))

  • Sauver le fichier sous n'importe quel nom dans ~/.gimp-2.0/scripts/

Ensuite on peut le faire marcher sur 1 image de cette façon : gimp -i -d -f -c -b '(script-fu-batch-round "source.jpg" "destination.jpg" )' Et donc on peut traiter tout un répertoire avec : for i in *; do gimp -d -f -c -b "(script-fu-batch-round \"$i\" \"$i\" )"; done