Wie kann ich mithilfe von Tastenkombinationen in GIMP die Farben wechseln?

7

Ich mache Screencasts (wie die der Khan Academy) mit GIMP als virtueller Tafel.

Im Moment ist das Wechseln der Vordergrundfarben etwas umständlich. Ich muss den Stift auf die Palette in meiner Toolbox verschieben, auf eine Farbe klicken und dann den Stift wieder in das Bildfenster verschieben. Dies erfordert Zeit, insbesondere beim schnellen Farbwechsel.

Wie kann ich den Farben in meiner Palette Tastenkombinationen zuweisen, damit ich leichter darauf zugreifen kann?

Qrtn
quelle

Antworten:

10

In meinem Fall (was mich zu Ihrer Frage brachte) D zum Zurücksetzen und X für den Farbwechsel ist ausreichend. Kombiniert mit O Sie können vielleicht ein paar schöne Abhilfen einrichten.

Standardfarben

Standardmäßig setzt GIMP die Vordergrundfarbe auf Schwarz und den Hintergrund   Farbe zu Weiß und es kann überraschend sein, wie oft Sie verwenden möchten   diese zwei farben. Um diese Farben schnell zurückzusetzen, drücken Sie einfach die D-Taste.   Außerdem können Sie die Vordergrund- und Hintergrundfarben problemlos austauschen   Drücken Sie die X-Taste.

Quelle: http://graphicssoft.about.com/od/gimptutorials/a/useful-keyboard-shortcuts.htm

yoshi
quelle
Danke für Ihre Antwort! Ich habe AutoHotkey verwendet, um meine Funktionstasten zuzuordnen, um die Koordinaten auf dem Bildschirm anzuklicken, und dann die Leinwand neu zu fokussieren, wenn Sie sich in GIMP befinden. Es ist jedoch nicht sehr flexibel, da ich bei jedem Start meiner Tafel sicherstellen muss, dass sich die Fenster an der gleichen Stelle befinden.
Qrtn
1

Soweit ich weiß, gibt es in GIMP keine solche Funktionalität. Wie Sie wahrscheinlich bereits wissen, war GIMP weder für Kunst noch für das Screencasting konzipiert und hätte als solches kaum eine solche Funktion.

Vorausgesetzt jedoch, dass Sie nicht den gesamten Bildschirm sehen müssen (Ihr Bildschirmschreiber verwendet nur den Teil von GIMP, der als Zeichenfläche dient), können Sie mit dem Stift- oder Pinselwerkzeug außerhalb des sichtbaren Bereichs mehrere Farben einrichten, um eine tatsächliche Farbe zu erstellen virtuelle "Palette". Es wäre dann so einfach wie das Drücken der O Drücken Sie die Taste, um die Pipette aufzurufen, und klicken Sie dann auf eine der Farben, die Sie ausgegeben haben.

fakedad
quelle
Danke für Ihre Antwort. O ist in der Tat eine sehr nützliche Abkürzung! In meinem Fall lässt sich mein Bildschirmschreiber (OBS) jedoch am einfachsten so einrichten, dass er ein gesamtes Fenster aufzeichnet, das meine 1024x768-Leinwand ist.
Qrtn
1

Ich wollte etwas Ähnliches, also habe ich ein kurzes Skript geschrieben. Dies ist mein erster Versuch mit einer Lisp-ähnlichen Sprache. Ich bin mir sicher, dass das Beispiel unten verbessert werden könnte, aber es funktioniert für mich mit 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"
         "*"
)

Wenn Sie nur einzelne Tastenkombinationen für bestimmte Farben zuweisen möchten, könnte etwas sehr einfaches wie das funktionieren (nicht getestet):

;; 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"
         "*"
)

Speichern Sie unter Linux Ihre fertigen Skripts in Ihrem Verzeichnis $ HOME / gimp-x.y / scripts edit: Sie müssen die Erweiterung .scm verwenden (Ähnliches für andere Betriebssysteme, denke ich) und navigiere dann zu "Filters - Script-Fu - Refresh Scripts" in gimp. Sie sollten die neuen Menüpunkte "Colors - Cycle FG" und "Colors - Foreground - Red" finden. Sie können ihnen Tastaturkürzel zuweisen (unter Plug-Ins, am einfachsten, wenn Sie das Suchfeld verwenden).

Natürlich können Sie beliebig viele Farben hinzufügen.

Prost, Jan

JM1
quelle
1

Die Schemalösung ist bei Verwendung von mehr als 15 Farben sehr langsam. Daher habe ich dieses Python-Skript erstellt, um eine Liste mit mehr als 20 Farben zu durchlaufen, und es ist viel schneller.

#!/usr/bin/env python

# this plug-in would normally be installed in the GIMP 2\lib\gimp\2.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()
David Zahn
quelle