Como posso mudar as cores usando atalhos de teclado no GIMP?

7

Estou fazendo screencasts (como os da Khan Academy) com o GIMP como um quadro negro virtual.

Neste momento, a troca de cores em primeiro plano é um pouco trabalhosa - tenho que mover minha caneta para a paleta na minha caixa de ferramentas, clicar em uma cor e depois mover minha caneta de volta para a janela de imagem. Isso leva tempo, especialmente ao trocar as cores rapidamente.

Como posso atribuir atalhos de teclado a cores na minha paleta, para que eu possa acessá-los mais facilmente?

    
por Qrtn 13.07.2014 / 00:03

4 respostas

10

No meu caso (o que me levou à sua pergunta), D para redefinir e X para a troca de cores é suficiente. Combinado com O , talvez você possa configurar algumas soluções interessantes.

Default Colors

By default, GIMP sets the foreground color to black and the background color to white and it can be surprising how often you want to use these two colors. To reset these colors quickly, just press the D key. Also you can easily swap the foreground and background colors by pressing the X key.

Fonte: link

    
por 26.08.2014 / 12:53
1

Até onde eu sei, essa funcionalidade não existe no GIMP. Como você provavelmente já sabe, o GIMP não foi projetado para arte nem screencasting e, como tal, teria pouca necessidade de tal recurso.

No entanto, supondo que você não precise ver a tela inteira (seu gravador de tela usa apenas a parte do GIMP que é a tela), você pode configurar várias cores usando a ferramenta Lápis ou Pincel fora da área visível para crie uma "paleta virtual" real. Seria então tão simples quanto pressionar a tecla O para obter a ferramenta Conta-gotas e, em seguida, clicar em uma das cores que você colocou.

    
por 29.07.2014 / 20:38
1

Eu queria algo semelhante, então escrevi um pequeno roteiro. Este é o meu primeiro esforço com uma linguagem parecida com lisp, então tenho certeza que o exemplo abaixo pode ser melhorado, mas funciona para mim no gimp 2.8.

;; script-fu to cycle between a set of foreground colours
;; edit the variable colours to modify the set
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License.

(define (script-fu-cycle-foreground-colour)

 ;add to or edit the list of colours to cycle here:   
 (define colours (list '(255 255 255) '(255 0 0) '(0 255 0) '(0 0 255) '(100 100 100)))

 (define list-index
  (lambda (e lst)
  (if (null? lst)
   -1
   (if (equal? (car lst) e)
     0
     (if (= (list-index e (cdr lst)) -1)
      -1
      (+ 1 (list-index e (cdr lst)))
     )
    )
   )
  )
 )


 (gimp-context-set-foreground (list-ref colours (modulo (+ 1 (list-index (car (gimp-context-get-foreground)) colours)) (length colours))))

 (gimp-displays-flush)
)

(script-fu-register "script-fu-cycle-foreground-colour"
         _"<Image>/Colors/Cycle FG"
         _"Cycles foreground colour"
         "Jan Marchant"
         "Jan Marchant"
         "January 2015"
         "*"
)

Se você quiser apenas atribuir atalhos individuais para cores específicas, acho que algo realmente simples como esse funcionaria (não testado):

;; script-fu to cycle between foreground colours
;; 
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License.

(define (script-fu-foreground-red)

 (gimp-context-set-foreground '(255 0 0))

 (gimp-displays-flush)
)

(script-fu-register "script-fu-foreground-red"
         _"<Image>/Colors/Foreground/Red"
         _"Sets foreground to red"
         "Jan Marchant"
         "Jan Marchant"
         "January 2015"
         "*"
)

Para Linux, salve seus scripts concluídos em seu diretório $ HOME / gimp-xy / scripts edit: você deve usar a extensão .scm (semelhante a outros sistemas operacionais, eu acho) e navegue até "Filtros - Script-Fu - Atualizar Scripts "no gimp. Você deve encontrar novos itens de menu "Colors - Cycle FG" e "Colors - Foreground - Red", e você pode atribuir atalhos de teclado a eles (em plug-ins, mas mais fácil se você usar a caixa de pesquisa).

É claro que você pode ampliar o número de cores que quiser.

Felicidades, Jan

    
por 10.01.2015 / 20:03
1

A solução do esquema é muito lenta ao usar 15+ cores, então criei este script python para percorrer uma lista de mais de 20 cores, e ele é muito mais rápido.

#!/usr/bin/env python

# this plug-in would normally be installed in the GIMP 2\lib\gimp.0\plug-ins folder 
# you may need to restart GIMP for this plug-in to appear in the Colors menu
# this has been tested on Windows with Gimp 2.8.14
from gimpfu import *

def color_cycle() :
    #this code sends a message back to Gimp communicating status
    pdb.gimp_message('Attempting to set the foreground color...')

    #you can change the colors in this list to suit your needs, but every color should be unique
    colors = [(0, 0, 0), 
              (236, 236, 236), 
              (110, 110, 110), 
              (87, 87, 87), 
              (41, 28, 19),
              (255, 255, 35),
              (216, 216, 1),
              (1, 216, 6),
              (0, 119, 3),
              (0, 44, 1),
              (86, 160, 211),
              (2, 41, 255),
              (1, 22, 142),
              (0, 13, 81),
              (38, 0, 58),
              (125, 1, 188),
              (255, 192, 203),
              (255, 129, 213),
              (223, 1, 41),
              (134, 1, 25),
              (42, 0, 8),
              (224, 97, 2)
              ]

    #backup the background color
    bg = gimp.get_background()

    i = 0
    bFound = False

    while (bFound == False):
        #using background to compare helps with floating point precision problems
        gimp.set_background(colors[i])
        if (gimp.get_foreground() == gimp.get_background()):
            bFound = True
            i += 1
        else:
            i += 1
            if (i > (len(colors) - 1)):
                i = 0
                bFound = True

    if i > len(colors) - 1:
        i = 0

    #if current color found in colors, then return the next one, otherwise return the first one
    color = colors[i]
    gimp.set_foreground(color)
    #restore the backed-up background color
    gimp.set_background(bg)
    pdb.gimp_message('Done setting the foreground color...')

register(
    "python_fu_color_cycle_fg",
    "Color Cycling",
    "Cycle the foreground through a list of colors.",
    "David Zahn",
    "David Zahn",
    "2015",
    "Color Cycle ForeGround",
    "*",      # Alternately use RGB, RGB*, GRAY*, INDEXED etc.
    [
    ],
    [],
    color_cycle, menu="<Image>/Colors")

main()
    
por 30.08.2015 / 17:21

Tags