Como posso automatizar algumas etapas simples no GIMP?

4

Estou tentando usar o GIMP para automatizar três ações em uma seleção definida pelo usuário na imagem ativa no momento -

  • Aumentar seleção por 2
  • Adicionar borda à seleção (largura de 2, com bordas enevoadas)
  • Preencha a seleção inteira com a cor # FF0000 (vermelho)

Eu descobri o Script-Fu Console e naveguei pelo comando (gimp-selection-grow image steps) , mas agora estou meio preso.

Em paramaters , a documentação simplesmente diz

image IMAGE The image
steps STEPS Steps of grow (in pixels) (steps >= 0)

Agora steps é bastante obvioius, mas estou preso em image . Com certeza, com a ação sendo realizada em uma seleção, o crescimento deve ser aplicado à seleção ativa?

Eu tentei deixar image como está, na esperança de que o GIMP percebesse que queria aumentar o número de ações na seleção ativa, mas recebi o erro Erro: (: 1) eval: unbound variable: image

Alguém por favor pode me ajudar a começar?

EDITAR

Eu descobri agora um tutorial para adicionar scripts ao GIMP usando Python part-2 "> link ), e eu tenho meu script registrado e, até certo ponto, trabalhando.

Por favor, veja minha resposta abaixo.

No entanto, um problema permanece - eu gostaria de fazer com que minha entrada de menu ficasse cinza até que uma seleção fosse feita, ao contrário de sempre visível.

    
por David Gard 21.10.2014 / 15:33

1 resposta

1

Com a ajuda de este tutorial , Agora consegui criar o plugin quase exatamente como gostaria.

#**
 # Import the relevant modules
 #*
from gimpfu import *


#**
 # Preform the main script function
 #*
def add_border_to_selection(image, drawable, grow_by, border_thickness, border_feather) :
    pdb.gimp_selection_grow(image, grow_by)
    pdb.gimp_selection_border(image, border_thickness)
    pdb.gimp_bucket_fill(drawable, 0, 0, 100, 15, TRUE, 0, 0)
    return


#**
 # Register the plugin
 #*
register(
    "djg-border-and-fill",
    "Border and Fill Selection",
    "This script adds first grows your selection, then adds a border, and finally fills the border in red.",
    "David Gard (DJG-Dev)",
    "GPL V2 License",
    "October 2014",
    "<Image>/Select/Border and Fill...",
    "*",
    [
      (PF_SPINNER, 'grow_by', 'Grow selection by (px)...', 2, (0,5,1)), 
      (PF_SPINNER, 'border_thickness', 'Border selection by (px)...', 2, (0,5,1)), 
      (PF_TOGGLE, 'border_feather', 'Feather border edges', TRUE)
    ],
    [],
    add_border_to_selection,
    )

main()
    
por 21.10.2014 / 17:55

Tags