Script GIMP pour redimensionner une image basé sur une sélection

J’ai écrit mon premier script dans le format script-fu interprété de GIMP pour automatiser une tâche systématique dans mon flux de modification d’images pour mes pages web. Ce script fait les tâche suivantes une fois que j’ai ouvert une image et sélectionné la zone à conserver:

  1. Réduire la taille de l’image en ne conservant que la sélection
  2. Sauvegarder l’image en format JPEG sous le même nom (écraser le fichier d’origine)

Les scripts utilisateurs sont situés dans ̀̀̀̀~/.config/GIMP/2.10/scripts.

Script-fu resize-image-to-selection.scm:

(define (resize-image-to-selection image drawable)
  (let* (
      (filename (car (gimp-image-get-filename image)))
      )
    (gimp-image-undo-group-start image)
    ; resize image to selection
    (gimp-selection-invert image)
    (gimp-drawable-edit-clear drawable)
    (plug-in-autocrop RUN-NONINTERACTIVE image drawable)
    (gimp-image-undo-group-end image)
    (gimp-displays-flush)
    ; exporter l'image
    (file-jpeg-save RUN-NONINTERACTIVE image drawable filename filename 1 0 1 1 "" 2 1 0 2 )
    )
  )

(script-fu-register "resize-image-to-selection"
 "Resize to Selection"
 "Resize Image to the active selection (rectangular)"
 "neutrino"
 "neutrino"
 "10/11/2022"
 "*"
 SF-IMAGE    "Image"    0
 SF-DRAWABLE "Drawable" 0
 )
(script-fu-menu-register "resize-image-to-selection"
 "<Image>/Layer"
 )