mercredi 31 août 2022

API GIMP-2.99.12 - SCRIPT-FU

L'API de gimp-2.99.12 est modifiée. 
Les Scripts-Fu doivent évoluer en fonction de cette nouvelle API .
Voici 3 modifications qui sont utilisables pour gimp-2.99.12 apportées par Lloyd Konneker sur gimp-2.99-git https://gitlab.gnome.org/GNOME/gimp/ 

Ancienne API  :  
(pic-layer (car (gimp-image-get-active-drawable image)))
Nouvelle API  :   
(pic-layer (aref (cadr (gimp-image-get-selected-drawables image)) 0))

Ancienne API  :  
(gimp-image-set-active-layer image drawable)
Nouvelle API  : 
(gimp-image-set-selected-layers image 1 (vector drawable))

Ancienne API  :  
(layer (if image (car (gimp-image-get-active-layer image)) #f))
Nouvelle API  : 
(layer (if image (aref (cadr (gimp-image-get-selected-layers image)) 0) #f))





*****

Exemple

Script-Fu 'ya Chrome Alpha' créé par Graechan et modifié par Vitforlinux et samj pour GIMP-2.99.12 :

7,36 Ko (7 538 octets)

*****

EDIT : 20230119

EXEMPLE
Rechercher l'équivalent d'une fonction qui n'existe plus dans GIMP 2.99.15 comme :
gimp-text-layer-set-letter-spacing text-layer
Dans ce cas il est possible de lancer une recherche sur le mot spacing et de chercher un équivalent :


*****
*****
*****




7 commentaires:

  1. Merci pour la suggestion, j'ai fait un changement qui permet la rétrocompatibilité.

    (cond ((defined? 'gimp-image-set-selected-layers) (gimp-image-set-selected-layers image 1 (vector drawable)))
    (else (gimp-image-set-active-layer image drawable)))

    dans ce SCM maintenant j'ai un problème avec Gimp 2.99.14 :

    (gimp-text-layer-set-justification text-layer justify)
    (gimp-text-layer-set-letter-spacing text-layer letter-spacing)
    (gimp-text-layer-set-line-spacing text-layer line-spacing)

    ils font une erreur que je ne sais pas comment réparer. En 2.99.15, j'espère que c'est corrigé.
    Excusez mon français... je suis italien, et encore MERCI !

    RépondreEffacer
    Réponses
    1. Bonjour,
      J'ai fait une petite mise à jour à la fin de cette page sur la recherche de problèmes (EDIT : 20230119).
      Bonne journée :o)

      Effacer
  2. Ce commentaire a été supprimé par un administrateur du blogue.

    RépondreEffacer
  3. Merci pour votre attention, j'ai essayé
    (gimp-text-layer-set-letter-spacing 50)
    comme suggéré par le guide, mais ça ne marche pas... et la console d'erreur ne marche pas non plus :-(

    Sous linux le terminal indique
    _gimp_gp_param_def_to_param_spec : le type GParamSpec 'GimpParamTextLayer' n'est pas géré
    Et
    Erreur : L'exécution de la procédure de gimp-text-layer-set-letter-spacing a échoué sur des arguments d'entrée non valides : la procédure "gimp-text-layer-set-letter-spacing" a été appelée avec un type de valeur incorrect pour l'argument "layers" (#1 ). Attendu GimpTextLayer, a obtenu gdouble à la place.

    Je pense que pour l'instant je vais me consacrer à l'origami... en attendant une version définitive de Gimp 3.

    Si vous voulez, regardez aussi votre script, que j'ai mis à jour... et c'est au même point.
    http://gimpchat.com/viewtopic.php?f=9&t=20246

    RépondreEffacer
    Réponses
    1. Bonjour,
      Voici une version pour vos tests :
      https://www.aljacom.com/~gimp/yaChrome-2.99.15.7z
      Les informations sont au début du script-fu.
      Les corrections ne sont pas faites mais ce script fonctionne un peu.
      Il faudra adapter ce script à la nouvelle API.
      Les messages sont là pour faciliter ma recherche...
      Bon courage :o)

      Effacer
  4. J'ai ajouté une nouvelle version pour Gimp 2.99.14/15 avec rétrocompatibilité 2.10.22/32.
    http://gimpchat.com/viewtopic.php?f=9&t=19850&p=272048#p272048
    J'espère qu'en 2.99.16, le texte sera à nouveau traité.

    RépondreEffacer
    Réponses
    1. Bonjour,
      Merci le nouveau script fonctionne :o)
      Voici quelques pages sur les modifications :
      https://gitlab.gnome.org/GNOME/gimp/-/blob/master/libgimp/gimptextlayer_pdb.c
      https://gitlab.gnome.org/GNOME/gimp/-/commit/892b62ec364cbdbd622d56a017f446051af724bc

      Effacer