0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Photoshopスポイトツールオプション(範囲・対象)をキーボードショートカットで設定する

Last updated at Posted at 2020-11-04

#レタッチ・色調補正で忘れてはいけないスポイトツールの設定
が、Photoshopではアクセスし辛いところにあります。

2030961048024.jpg

この設定内容、特にサンプル範囲の指定値は、

  • ブラシでのOPTION(Alt)+クリックでの色拾い
  • ターゲット調整ツール
  • カラーサンプラー
    などなどの、サンプル範囲を指定する全てのツールで共有しています。
    画像の状態によって適宜変更しないとちょっと面倒なんですが、まぁ、面倒くさいところにあるんですね…
    これをキーボードショートカットで変更できないかと思っていたら、
    『Solved: Setting eyedropper options - Adobe Support Community - 10115167』https://community.adobe.com/t5/photoshop/setting-eyedropper-options/td-p/10115167?page=1&profile.language=en
    Adobeフォーラムのr-bin氏がそのものズバリなScriptをアップしていました。
    これをお借りして、KeyboardMaestroでちょうどいいキーに割り当てて使ってみましょう。
    KMマクロのメインは、AppleScriptで包んだJavaScriptです。包んでるので変数もKMから渡せますね!
(*
This AppleScript uses the script of r-bin. Thanks to r-bin
https://community.adobe.com/t5/photoshop/setting-eyedropper-options/td-p/10115167
r-bin(https://community.adobe.com/t5/user/viewprofilepage/user-id/7619033)
*)

(*
eyeDropperSample(サンプルサイズ)		0:指定/1:3/2:5/5:11/15:31/25:51/50:101
eyeDropperSampleSheet(サンプル対象)	0:全て 1:現在 3:現在以下 6:全て調整なし 8:現在以下調整なし
*)

use Photoshop : application id "com.adobe.photoshop"
tell application "Keyboard Maestro Engine" to set mySampleSize to getvariable "SampleSize" as text

tell Photoshop
	do javascript ("var r = new ActionReference();
r.putProperty(stringIDToTypeID(\"property\"), stringIDToTypeID(\"tool\"));
r.putEnumerated(stringIDToTypeID(\"application\"), stringIDToTypeID(\"ordinal\"), stringIDToTypeID(\"targetEnum\"));
var curr_tool = executeActionGet(r).getEnumerationType(stringIDToTypeID(\"tool\"));

var r = new ActionReference();
r.putClass(stringIDToTypeID(\"eyedropperTool\"));
var d = new ActionDescriptor();
d.putReference(stringIDToTypeID(\"null\"), r);
executeAction(stringIDToTypeID(\"select\"), d, DialogModes.NO);

var r = new ActionReference();
r.putProperty(stringIDToTypeID(\"property\"), stringIDToTypeID(\"tool\"));
r.putEnumerated(stringIDToTypeID(\"application\"), stringIDToTypeID(\"ordinal\"), stringIDToTypeID(\"targetEnum\"));
var op = executeActionGet(r).getObjectValue(stringIDToTypeID(\"currentToolOptions\"));
op.putInteger(stringIDToTypeID(\"eyeDropperSample\"), " & mySampleSize & ");
var r = new ActionReference();
r.putClass(stringIDToTypeID(\"eyedropperTool\"));
var d = new ActionDescriptor();
d.putReference( stringIDToTypeID( \"null\" ), r );
d.putObject(stringIDToTypeID(\"to\"), stringIDToTypeID(\"null\"), op);
executeAction(stringIDToTypeID(\"set\"), d, DialogModes.NO);

var r = new ActionReference();
r.putClass(curr_tool);
var d = new ActionDescriptor();
d.putReference(stringIDToTypeID(\"null\"), r);
executeAction(stringIDToTypeID(\"select\"), d, DialogModes.NO);")
end tell

こっちはサンプル対象を変更します(Keyboard Maestroから実行)

use Photoshop : application id "com.adobe.photoshop"
tell application "Keyboard Maestro Engine" to set mySampleTarget to getvariable "SampleTarget" as text

tell Photoshop
	do javascript ("
try
    {
    var r = new ActionReference();
    r.putProperty(stringIDToTypeID(\"property\"), stringIDToTypeID(\"tool\"));
    r.putEnumerated(stringIDToTypeID(\"application\"), stringIDToTypeID(\"ordinal\"), stringIDToTypeID(\"targetEnum\"));

    var ret = executeActionGet(r);

    var options = ret.getObjectValue(stringIDToTypeID(\"currentToolOptions\"));           
    var tool = ret.getEnumerationType(stringIDToTypeID(\"tool\"));

options.putBoolean(charIDToTypeID(\"StmS\"), " & mySampleTarget & ");
options.putBoolean(charIDToTypeID(\"StmB\"), " & mySampleTarget & ");



    var r = new ActionReference();
    r.putClass(tool);

    var d = new ActionDescriptor();
    d.putReference(stringIDToTypeID(\"null\"), r);
    d.putObject(stringIDToTypeID(\"to\"), stringIDToTypeID(\"null\"), options);

    executeAction(stringIDToTypeID(\"set\"), d, DialogModes.NO);
    }
catch (e) { /*alert(e)*/  }
")
end tell

option+1〜7で値を渡してサンプル範囲変更、option+0,.で対象レイヤー変更を仕込みます。便利べんり。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?