Bonjour,
Je cherche à créer un script Tinyscheme qui fasse tourner des calques d'une image vectorielle gimp après indication par l'utilisateur de l'angle de rotation (le centre étant écrit par défaut mais modifiable)
J'ai écrit ce script mais j'obtiens un message d'erreur :
"Error while executing script-fu-turn-layers:
Error: Procedure execution of gimp-image-get-layers failed on invalid input arguments: Procedure 'gimp-image-get-layers' has been called with an invalid ID for argument 'image'. Most likely a plug-in is trying to work on an image that doesn't exist any longer. "
Voici mon script :
-------------------------------------------------------------
------------------------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 ( define( script-fu-turn-the-layer drawable angle center-x center-y ) ; Comment :Ce script permet de faire tourner un calque définit selon un centre de rotation et un angle définit en gradian (gimp-drawable-transform-rotate-default drawable (* (/ angle 360) (* 2 3.14)) FALSE center-x center-y FALSE 0) ) ( define( script-fu-turn-layers image drawable angle center-x center-y ) ( let* ( ( layer-nbr (car (gimp-image-get-layers image))) ( i 0 ) ) (while (< i layer-nbr) (let* ((drawable (aref (cadr (gimp-image-get-layers 1)) i)) (prefix (substring (car (gimp-drawable-get-name drawable)) 0 2))) ; Par convention on fait tourner tous les calques dont le nom commence par "##" (if (equal? prefix "##") (script-fu-turn-the-layer drawable angle center-x center-y) ) ) (set! i (+ i 1) ) ) ) ) (script-fu-register "script-fu-turn-layers" ;func name "Rotation d'un groupe de calques" ;menu label "Faire tourner tous les calques nommés avec le préfix ##." ;description "Peter " ;author "" ;copyright notice "Date " ;date created "" ;image type that the script works on SF-IMAGE "Input Image" 0 ; l'image par défaut est l'image active SF-DRAWABLE "Input Drawable" 0 ; le calque par défaut est le calque actif SF-VALUE "Angle" "0" ; Par défaut, l'angle fait 0 degré SF-VALUE "X du Centre de rotation (en pixels)" "988" ; Coordonnées par défaut du centre de rotation des claques SF-VALUE "Y du centre de rotation (en pixels)" "1006" ) (script-fu-menu-register "script-fu-turn-layers" "<Toolbox>/Xtns/Travail")
Voyez vous l'erreur ?
Merci beaucoup pour votre aide !
Partager