web-dev-qa-db-ja.com

GIMPのキーボードショートカットを使用して色を切り替えるにはどうすればよいですか?

仮想黒板としてGIMPを使用して(カーンアカデミーのような)スクリーンキャストを作成しています。

現在、前景色の切り替えは少し面倒です。ペンをツールボックスのパレットに移動し、色をクリックしてから、ペンを画像ウィンドウに戻す必要があります。これは、特に色をすばやく切り替える場合に時間がかかります。

パレットの色にキーボードショートカットを割り当てて、簡単にアクセスできるようにするにはどうすればよいですか?

9
Qrtn

私の場合(あなたの質問に私を連れて来ました)、リセットにはD、色を交換するにはXで十分です。 Oと組み合わせると、いくつかの素晴らしい回避策を設定できます。

デフォルトの色

デフォルトでは、GIMPは前景色を黒に設定し、背景色を白に設定します。これら2つの色をどれほど頻繁に使用するかは驚くべきことです。これらの色をすばやくリセットするには、Dキーを押します。また、Xキーを押すと、前景色と背景色を簡単に入れ替えることができます。

ソース: http://graphicssoft.about.com/od/gimptutorials/a/useful-keyboard-shortcuts.htm

13
nuala

私の知る限り、GIMPにはそのような機能はありません。ご存知かもしれませんが、GIMPはアート用にもスクリーンキャスト用にも設計されていないため、そのような機能はほとんど必要ありません。

ただし、画面全体を表示する必要がない場合(スクリーンレコーダーはGIMPのキャンバスである部分のみを使用します)、表示領域の外側で鉛筆またはペイントブラシツールを使用して複数の色を設定し、実際の色を作成できます。バーチャル「パレット」。その場合、[〜#〜] o [〜#〜]キーを押してスポイトツールを取得し、出力した色の1つをクリックするだけです。

1
fakedad

15色以上を使用する場合、スキームソリューションは非常に遅いため、このpythonスクリプトを作成して、20色以上のリストを循環し、非常に高速に実行します。

#!/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()
1
David Zahn

同様のものが欲しかったので、短いスクリプトを作成しました。これはLISPのような言語での私の最初の取り組みなので、以下の例は改善できると確信していますが、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"
         "*"
)

特定の色に個別のショートカットを割り当てるだけの場合は、次のように本当に簡単なものが機能すると思います(テストされていません)。

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

Linuxの場合、完成したスクリプトを$ HOME/gimp-xy/scriptsディレクトリに保存します編集:拡張子.scmを使用する必要があります(おそらく他のOSでも同様です)、「フィルター-スクリプト- Fu-gimpの「スクリプトの更新」。新しいメニュー項目「色-サイクルFG」と「色-前景-赤」が表示され、キーボードショートカットを割り当てることができます(プラグインの下ですが、検索ボックスを使用すると最も簡単です)。

もちろん、好きなだけ色に拡張できます。

乾杯、1月

1
JM1