Gimp
Un article de SoleïadeWiki.
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
