Двойной слой GIMP на консоли script-fu - PullRequest
0 голосов
/ 05 мая 2019

Как мне дублировать слой на консоли script-fu (схема)?

Вот что я сделал до сих пор:

(gimp-image-list)

Это говорит мне, что ссылка намое изображение имеет номер "1".

Далее я получаю ссылку на конкретный слой, который я хочу дублировать:

(gimp-image-get-layer-by-name 1 "frame25")

Результат этого говорит мне, что ссылка на слойчисло "2".

Я не видел никаких функций для дублирования слоя, но я вижу, что могу скопировать слой и затем вставить его как новый слой.

(gimp-image-insert-layer 1 (car (gimp-layer-copy 2 TRUE)) 0 n)

Но какова стоимость n?Я хочу вставить дубликат прямо над существующим слоем, так же как дублирование слоя будет делать в док-станции Layers.Но я не смог найти никаких функций, которые возвращают «положение» (так как браузер процедур script-fu вызывает 4-й параметр для gimp-image-insert-layer) слоя в стеке.Например, похоже, что ни одна из функций "gimp-layer-get- *" не ссылается на position.Я пытался найти это в Интернете, но большинство людей используют «положение» для обозначения смещения слоя, что совершенно не связано.(gimp-image-insert-layer 1 (gimp-layer-copy 2 TRUE) 0 n)

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

n - это положение слоя в стеке слоев, 0 - вверху (поэтому для вставки внизу, n - текущее количество слоев).

Обратите внимание, что если вы пишете истинный сценарий, изображение и слой могут автоматически передаваться в качестве аргументов (когда в списке несколько изображений, трудно сказать, какое из них интересует пользователя, а какое в аргументах изображение, с которым взаимодействует пользователь).

Кроме того, если это ваш первый опыт написания скриптов в Gimp, не забывайте, что вы можете писать скрипты на Python (что обычно намного проще).

0 голосов
/ 05 мая 2019

Вместо n, введите (car (gimp-image-get-item-position 1 2))

Или вообще:

(car (gimp-image-get-item-position IMG LAYER))

...