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


レタッチ・色調補正で忘れてはいけないスポイトツールの設定

が、Photoshopではアクセスし辛いところにあります。

この設定内容、特にサンプル範囲の指定値は、
* ブラシでの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

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