Skip to content

Commit 0d83dba

Browse files
authored
Add files via upload
1 parent 70b9355 commit 0d83dba

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

apply-layer-skip-color.scm

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
;; apply-layer-skip-color.scm
2+
;; Author: a198h
3+
;; Repository: https://github.com/a198h/gimp-apply-layer-skip-color
4+
;; Applique le calque "logo-layer" sur tous les calques,
5+
;; sauf ceux tagués avec la couleur choisie
6+
7+
(define (apply-layer-skip-color image logo-layer skip-color)
8+
(let* (
9+
(layers-info (gimp-image-get-layers image))
10+
(layers-array (cadr layers-info))
11+
(num-layers (car layers-info))
12+
(i 0)
13+
;; Correspondance des couleurs avec les valeurs GIMP 2.10
14+
(color-values (list 0 6 1 2 3 4 5 7 8)) ; Aucune, Rouge, Orange, Jaune, Vert, Bleu, Violet, Gris, Noir
15+
(skip-tag (list-ref color-values skip-color))
16+
)
17+
(gimp-image-undo-group-start image)
18+
;; Copie unique du contenu du calque logo
19+
(gimp-edit-copy logo-layer)
20+
(while (< i num-layers)
21+
(let* ((current-layer (aref layers-array i))
22+
;; Selon le PDB, ceci renvoie un entier; (car ...) est sûr si une liste est renvoyée
23+
(tag (let ((t (gimp-item-get-color-tag current-layer)))
24+
(if (list? t) (car t) t))))
25+
(if (and
26+
(not (= current-layer logo-layer)) ; ne pas traiter le logo lui-même
27+
(not (= tag skip-tag))) ; ignorer les calques avec la couleur choisie
28+
(begin
29+
(gimp-image-set-active-layer image current-layer)
30+
(gimp-floating-sel-anchor (car (gimp-edit-paste current-layer 0))))))
31+
(set! i (+ i 1)))
32+
(gimp-image-undo-group-end image)
33+
(gimp-displays-flush)
34+
(gimp-message "Calque appliqué partout (calques marqués ignorés).")
35+
)
36+
)
37+
38+
(script-fu-register
39+
"apply-layer-skip-color"
40+
"Apply Layer (skip color)"
41+
"Applies the active layer to all other layers except those with the chosen color tag."
42+
"a198h"
43+
"Copyright (C) 2025 a198h - GPL v3"
44+
"2025"
45+
"RGB*, GRAY*"
46+
SF-IMAGE "Image" 0
47+
SF-DRAWABLE "Layer" 0
48+
SF-OPTION "Skip" '("None" "Red" "Orange" "Yellow" "Green" "Blue" "Violet" "Gray" "Black"))
49+
50+
(script-fu-menu-register "apply-layer-skip-color" "<Image>/Filters/Mes scripts")

0 commit comments

Comments
 (0)