Как определить последнее выбранное изображение в gimp из (схема функции) gimp-image-list?
Как определить последнее выбранное изображение в gimp из gimp-image-list?
gimp-image-list возвращает список с количеством изображений в качестве первого элемента и вектором идентификаторов изображений в качестве второго элемента.
Если существует более одного изображения, как можно найти последнее сфокусированное изображение?
2 ответа
Вы не Порядок в списке - это обратный порядок, в котором изображения были открыты - обычно это обратные порядки на вкладках изображений.
Случается так, что если вы пишете скрипт, который должен воздействовать на открытое изображение, вы должны поместить его в меню "" - таким образом, GIMP передаст вам активное изображение и активную отрисовку в качестве первых параметров "бесплатно" (то есть, не требуя от пользователя их выбора).
В интерактивном режиме, т.е. вне сценария, вы просто проверяете идентификатор изображения в строке заголовка.
Вам необходимо определить изображение и область рисования при регистрации скрипта. Например:
(script-fu-register "script-fu-some-handy-function"
_"_Handy function..."
_"Does something handy for your image."
"Michael T <username@domain.com>"
"Michael T"
"24/09/2022"
"*"
SF-IMAGE "Input image" 0
SF-DRAWABLE "Input drawable" 0
)
Затем, когда вам нужно использовать изображение, вы просто наберете «изображение», чтобы использовать изображение, на которое указывает ссылка.
(define (script-fu-some-handy-function image drawable)
(define width (car(gimp-image-width image)))
(define height (car(gimp-image-height image)))
(define newLayer (gimp-layer-new image width height 1 "Black" 100 0))
(define newLayerIndex (car newLayer))
(gimp-image-insert-layer image newLayerIndex 0 0)
(gimp-context-set-foreground '(0 0 0))
)
Обратите внимание, как мы определяем переменную в определении функции, иначе эта переменная не будет работать в определении.