Script fu auto rotate pour Gimp

Fermé
Shadows - 6 mai 2011 à 02:40
 Utilisateur anonyme - 8 mai 2011 à 21:10
Bonjour,

J ai voulu installer le scrit fu auto rotate sur ma version de gimp 2.6.8.
Apres l avoir telechargé, je l ai placé dans les scripts.
J ai ouvert gimp et j ai actualiser les scripts mais la fonction n apparait pas.
Comment puis je faire pour que ce script soit operationnel.
Il est libellé ainsi:photolab_exif_autorotate.py.
Si vous avez une idée, j attends votre aide.
Merci d avance et j espere a bientot.
Shadows


A voir également:

12 réponses

Bonjour,

Bon...
"photolab_exif_autorotate.py."

1°)
Le .py indique qu'il s'agit d'un python-fu (script en Python)...
De ce que j'en lis dans ce document :
https://www.vvpix.com/index.php

"Pour avoir acces a Python avec Gimp, sous Windows, il faut installer Python, pyGTK, et seulement ensuite installer Gimp."

Dans le document, il est indiqué les adresses où tu peux télécharger ce qui est nécessaire...

2°)
Ici :
http://www.gimpfr.org/contrib_photolabo_exiftools.php
Il est indiqué que les librairies JHead et Jpegtran sont nécessaires...

Maintenant, si tu n'as pas beaucoup d'images à traiter, il y a un autre "auto-rotate" :
http://www.retouchelibre.net/index.php?article33/redresser-facilement-l-horizon-sous-gimp-avec-auto-rotate/
https://www.gimp.org/registry/

Et là, tu n'auras pas ces problèmes de dépendances, car il s'agit d'un script-fu...

;-)

@+

Ooh...bin v'là que l'manchot a fermé l'fenêtre !
(La Mère Denis)
Bonjour tout le monde,

@ Shadows :

Bon, ne désespère pas, on va bien trouver une solution...

-> Ouvres le bloc-notes
-> Dans ton navigateur, copies le texte du script

Pour simplifier, je mets le texte à copier dans un post suivant...
Copie bien ce que je mets, cela garde la mise en forme.
;-)

-> Dans ton bloc-notes, colles le texte
-> enregistres ce fichier en l'appelant autorotate.scm dans le dossier :
C:\Program Files\Gimp-2.0\share\gimp\2.0\scripts
ou dans
C:\Documents and Settings\nom_d'utilisateur\.gimp-2.6\scripts\

https://pix.toile-libre.org/?img=1304846038.jpg

Et normalement, ça "devrait le faire"...
(Je viens de tester sur mon XP virtualisé, et cela fonctionne)

;-)


@ Armojax
Salut !
Ben, c'est dimanche, il fait beau, je ne travaille pas aujourd'hui...
Donc, ça va bien...
;-D

Quand aux scripts avec Gimp, je m'étais fait ma petite collection perso (pas des gros trucs, mais des trucs du genre ajout de 4 guides en une fois, etc...), malheureusement, depuis la version 2.4, l'interpréteur a changé...

Bon dimanche.
;-)

@+

Ooh...bin v'là que l'manchot a fermé l'fenêtre !
(La Mère Denis)
Utilisateur anonyme
8 mai 2011 à 11:22
;script-fu auto-rotate
;author : Hevan53
;version 2
;how to use it : use the path to to draw a line, then go to /Layer/Auto rotate
;note : the stroke you have drawn can contain more than 2 points (the script will only take the first and the last)

(define (script-fu-auto-rotate inImage inDrawable)

  (define (gimp-message-and-quit message) (gimp-message message) (quit))

  ;return the coordinates of the vector the user has drawn on the image
  (define (get-vector-coords inImage)
    (let ( (active-vectors (car (gimp-image-get-active-vectors inImage))) )
      (if (= active-vectors -1)
        (gimp-message-and-quit "There are no paths in the image! Please create one stroke on one path.")
        (let ( (strokes (gimp-vectors-get-strokes active-vectors)) )
          (if (= (car strokes) 0)
            (gimp-message-and-quit "There is no stroke in the path! Please create one stroke on one path.")
            (let* ( (stroke-id (vector-ref (cadr strokes) 0))
                    (controlpoints (gimp-vectors-stroke-get-points active-vectors stroke-id))
                    (num-controlpoints (cadr controlpoints)) )
              (if (=  num-controlpoints 6)
                (gimp-message-and-quit "There are not enough controlpoints!")
                (let* ( (controlpoints-coords (caddr controlpoints))
                        (x0 (vector-ref controlpoints-coords 2))
                        (y0 (vector-ref controlpoints-coords 3))
                        (x1 (vector-ref controlpoints-coords (- num-controlpoints 4)))
                        (y1 (vector-ref controlpoints-coords (- num-controlpoints 3)))
                        (a (- x1 x0))
                        (b (- y1 y0)) )
                  (list a b) ))))))))

  (let* ( (coords (get-vector-coords inImage))
          (a (car coords))
          (b (cadr coords))
          (teta (if (= a 0) 0 (atan (/ b a))))
          (pi-sur-4 (atan 1)) )

    (cond
      ((and (> teta (-(* pi-sur-4 2))) (< teta (- pi-sur-4)))   (gimp-drawable-transform-rotate-default inDrawable (- (+ (* pi-sur-4 2) teta))  TRUE 0 0 TRUE 0))
      ((and (>= teta (- pi-sur-4))     (< teta 0))              (gimp-drawable-transform-rotate-default inDrawable (- teta)                     TRUE 0 0 TRUE 0))
      ((and (> teta 0)                 (<= teta pi-sur-4))      (gimp-drawable-transform-rotate-default inDrawable (- teta)                     TRUE 0 0 TRUE 0))
      ((and (> teta pi-sur-4)          (< teta (* pi-sur-4 2))) (gimp-drawable-transform-rotate-default inDrawable (- (* pi-sur-4 2) teta)      TRUE 0 0 TRUE 0))
    )

    (gimp-displays-flush)
  )

)                                                                                


(script-fu-register
        "script-fu-auto-rotate"
        "Auto rotate"
        ""
        "Hevan53"
        "Hevan53"
        "02/2010"
        "RGB* GRAY* INDEXED*"

        SF-IMAGE    "Image"    0
        SF-DRAWABLE "Drawable" 0
)

(script-fu-menu-register "script-fu-auto-rotate" "<Image>/Layer")
Armojax Messages postés 1858 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 22 mars 2024 1 527
8 mai 2011 à 20:27
Re,

Juste une remarque, quand même : l'objet auto rotate(new).scm, dont l'adresse de téléchargement a été fournie par Le Gnou plus haut dans ce post, contient rigoureusement ce même texte en format texte, la seule différence étant la mise en page.

Il suffisait tout simplement de le prendre tel quel...

Mais dans tous les cas ça marche, évidemment :-;

Bonne soirée.

Armojax.

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonsoir Armojax,

Merci a toi aussi pour ton intervention sur mon probleme.
Je n ai pas comparé les textes mais je suis en train de voir que tu as raison.

A present ca marche et comme je l ai dit plus haut je suis tres contente.

Bonne soirée egalement

A bientot.
Utilisateur anonyme
8 mai 2011 à 21:10
Re Shadows,

"J y suis parvenue"

Ça, c'est le principal...

Reste que, si tu n'as pas la possibilité de télécharger les scripts, cela vient peut-être de ton navigateur (vu : Configuration: Windows XP / Internet Explorer 7.0)

Parce que :
-> avec Firefox :
https://pix.toile-libre.org/?img=1304881482.jpg

ou Opéra :
https://pix.toile-libre.org/?img=1304881500.jpg

;-)

Bonne continuation.


PS : penses à mettre ton message en résolu...
https://www.commentcamarche.net/infos/25917-marquer-un-fil-de-discussion-comme-etant-resolu/


;-)
Bonjour Le gnou

Merci beaucoup d avoir pris le temps de me lire et de me repondre.

J avais remarqué la terminaison PY et qui ne correspondait pas aux autres scripts se terminant scm.
La solution serait donc de telecharger Python.

J avais lu le deuxieme lien et je ne connais pas Jhead et Jepgtran.

Concernant ceux ci:
Maintenant, si tu n'as pas beaucoup d'images à traiter, il y a un autre "auto-rotate" :
http://www.retouchelibre.net/...
http://registry.gimp.org/node/22910

C est justement cette version d auto rotate que je souhaiterai et non les autres.
Mais j ai du rater un episode je n ai pas trouvé ou il faut taper pour telecharger le script fu sur les deux pages que tu m indiques.
Je suis partie de retouche libre et je suis allée sur GIMP Plugin Registry mais je n ai pas su comprendre comment installer l option.

Peux tu stp m eclairer sur la question et m indiquer comment puis je proceder.

Je te souhaite une bonne journée.
Merci a toi une fois encore.
Utilisateur anonyme
7 mai 2011 à 10:06
Bonjour Shadows,

Pour télécharger le script :
https://www.gimp.org/registry/

Ensuite, places-le dans : "C:\Documents and Settings\nom_d'utilisateur\.gimp-2.6\scripts\"


Quand à l'utilisation, plutôt que de mettre X liens vers X captures d'écran, un p'tit PDF qui va bien :
https://www.cjoint.com/?AEhkecWleTC


;-)

@+

Bonjour Le gnou

Une fois encore merci pour ta reponse.

Je suis vraiment nulle , je ne comprends pas.
Je suis deja allée plusieurs fois sur le lien que tu m indiques pour telecharger le script mais il m apparait ceci sur une page ou je ne peux pas telecharger.
Je peux juste copier et coller cette sorte de texte rien de plus.

Je suis desolée mais je bloque completement.
J avais deja vu ce truc et je n avais pas su comment l aborder c est la raison pour laquelle j avais telecharger la version python.
Celle ci quand on tapait sur le lien il y avait possibilité de telecharger et la non.

Je te souhaite un bon dimanche.





;script-fu auto-rotate
;author : Hevan53
;version 2
;how to use it : use the path to to draw a line, then go to /Layer/Auto rotate
;note : the stroke you have drawn can contain more than 2 points (the script will only take the first and the last)

(define (script-fu-auto-rotate inImage inDrawable)

(define (gimp-message-and-quit message) (gimp-message message) (quit))

;return the coordinates of the vector the user has drawn on the image
(define (get-vector-coords inImage)
(let ( (active-vectors (car (gimp-image-get-active-vectors inImage))) )
(if (= active-vectors -1)
(gimp-message-and-quit "There are no paths in the image! Please create one stroke on one path.")
(let ( (strokes (gimp-vectors-get-strokes active-vectors)) )
(if (= (car strokes) 0)
(gimp-message-and-quit "There is no stroke in the path! Please create one stroke on one path.")
(let* ( (stroke-id (vector-ref (cadr strokes) 0))
(controlpoints (gimp-vectors-stroke-get-points active-vectors stroke-id))
(num-controlpoints (cadr controlpoints)) )
(if (= num-controlpoints 6)
(gimp-message-and-quit "There are not enough controlpoints!")
(let* ( (controlpoints-coords (caddr controlpoints))
(x0 (vector-ref controlpoints-coords 2))
(y0 (vector-ref controlpoints-coords 3))
(x1 (vector-ref controlpoints-coords (- num-controlpoints 4)))
(y1 (vector-ref controlpoints-coords (- num-controlpoints 3)))
(a (- x1 x0))
(b (- y1 y0)) )
(list a b) ))))))))

(let* ( (coords (get-vector-coords inImage))
(a (car coords))
(b (cadr coords))
(teta (if (= a 0) 0 (atan (/ b a))))
(pi-sur-4 (atan 1)) )

(cond
((and (> teta (-(* pi-sur-4 2))) (< teta (- pi-sur-4))) (gimp-drawable-transform-rotate-default inDrawable (- (+ (* pi-sur-4 2) teta)) TRUE 0 0 TRUE 0))
((and (>= teta (- pi-sur-4)) (< teta 0)) (gimp-drawable-transform-rotate-default inDrawable (- teta) TRUE 0 0 TRUE 0))
((and (> teta 0) (<= teta pi-sur-4)) (gimp-drawable-transform-rotate-default inDrawable (- teta) TRUE 0 0 TRUE 0))
((and (> teta pi-sur-4) (< teta (* pi-sur-4 2))) (gimp-drawable-transform-rotate-default inDrawable (- (* pi-sur-4 2) teta) TRUE 0 0 TRUE 0))
)

(gimp-displays-flush)
)

)


(script-fu-register
"script-fu-auto-rotate"
"Auto rotate"
""
"Hevan53"
"Hevan53"
"02/2010"
"RGB* GRAY* INDEXED*"

SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0
)

(script-fu-menu-register "script-fu-auto-rotate" "<Image>/Layer
J ai beau chercher je peux copier cet espece de texte mais je ne peux pas le coller et rien a faire, pas moyen de telecharger quoi que se soit et de le dezipé ensuite pour le placer dans les dossiers scripts.
C est usant.
Ca semble tout bete, je sais telecharger, je sais decompresser et placer mais la je ne sais plus quoi faire.
Armojax Messages postés 1858 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 22 mars 2024 1 527
8 mai 2011 à 08:46
Bonjour Shadows,

On repart du début :

1) Télécharge Auto rotate à l'adresse que t'a donnée Le Gnou

https://www.gimp.org/registry/

Tu obtiens un objet : auto rotate(new).scm

2) Copie cet objet dans :

C:\Program Files\Gimp-2.0\share\gimp\2.0\scripts

Et c'est tout.

Pour l'utiliser :

- avec l'outil "Chemins", dépose deux points qui vont se relier en ligne droite
- puis tu fais : Calque >> Auto rotate

L'image pivote pour que la ligne définie devienne l'horizontale.

Bonne chance.

Armojax.

Salut Le Gnou, comment va ?
Ça manquait, l'auto-rotation, c'est bien pratique...

Bon dimanche.
Bonsoir a vous.

Le gnou un grand merci a toi pour ta patience.
J y suis parvenue grace a toi. HOura!!!!!!

Je suis trés contente.
La subtilité qui faisait que je n y parvenais pas c est le fait qu il faille copier le script dans le Bloc notes.
Maintenant j ai compris et je suppose qu il faut proceder ainsi pour tous les scripts que l on souhaite installer.
Je debute dans la retouche photo.
Le redressement de la ligne d horizon est bien pratique car la photo numerique a de nombreux avantages mais aussi d enomes inconvenients et entre autres les horizons penchés du au capteur mal positionné qui est un souci courant sur de nombreux apn.
Cette version d auto rotate m a semblé etre le plus facile et le plus rapide d utilisation par rapport a ceux ou il faut configurer une grille, l ajuster, redresser etc etc....

Bref, tu m a rendu un grand service.
Merci beaucoup une fois encore pour ton aide.

A bientot.