Photoshopのスクリプト「ファイルをレイヤーとして読み込み」の画像を読み込み先を、アクティブになっているpsdファイルに設定したい
解決したいこと
Photoshopで「ファイル」>「スクリプト」>「ファイルをレイヤーとして読み込み」を実行したとき、
選択した画像ファイルを、スクリプトで自動的に新規作成されたpsdファイル上ではなく、
すでに開かれている(アクティブになっているファイル)にそれぞれレイヤーとして読み込ませるように読み込み先を変更したい
発生している問題・エラー
Photoshopで「ファイル」>「スクリプト」>「ファイルをレイヤーとして読み込み」を実行したとき、
選択した画像ファイルが、既に開かれているpsdファイル(アクティブになっているpsdファイル)上に読み込まれずに、スクリプトで自動的に新規作成されたpsdファイル上に読み込まれてしまう。
該当するソースコード
// debug level: 0-2 (0:disable, 1:break on error, 2:break at beginning)
//$.level = (Window.version.search("d") != -1) ? 1 : 0; // This chokes bridge
$.level = 0;
// debugger; // launch debugger on next line
// on localized builds we pull the $$$/Strings from a .dat file
$.localize = true;
// Put header files in a "Stack Scripts Only" folder. The "...Only" tells
// PS not to place it in the menu. For that reason, we do -not- localize that
// portion of the folder name.
var g_StackScriptFolderPath = app.path + "/"+ localize("$$$/ScriptingSupport/InstalledScripts=Presets/Scripts") + "/"
+ localize("$$$/private/LoadStack/StackScriptOnly=Stack Scripts Only/");
$.evalFile(g_StackScriptFolderPath + "LatteUI.jsx");
$.evalFile(g_StackScriptFolderPath + "StackSupport.jsx");
$.evalFile(g_StackScriptFolderPath + "CreateImageStack.jsx");
/************************************************************/
// loadLayers routines
loadLayers = new ImageStackCreator( localize("$$$/AdobePlugin/Shared/LoadStack/Process/Name=Load Layers"),
localize('$$$/AdobePlugin/Shared/LoadStack/Auto/untitled=Untitled' ) );
// LoadLayers is less restrictive than MergeToHDR
loadLayers.mustBeSameSize = false; // Images' height & width don't need to match
loadLayers.mustBeUnmodifiedRaw = false; // Exposure adjustements in Camera raw are allowed
loadLayers.mustNotBe32Bit = false; // 32 bit images
loadLayers.createSmartObject = false; // If true, option to create smart object is checked.
// Add hooks to read the value of the "Create Smart Object" checkbox
loadLayers.customDialogSetup = function( w )
{
w.findControl('_createSO').value = loadLayers.createSmartObject;
if (! app.featureEnabled( localize( "$$$/private/ExtendedImageStackCreation=ImageStack Creation" ) ))
w.findControl('_createSO').hide();
}
loadLayers.customDialogFunction = function( w )
{
loadLayers.createSmartObject = w.findControl('_createSO').value;
}
// Override the default to use "Auto" alignment.
loadLayers.alignStack = function( stackDoc )
{
selectAllLayers(stackDoc, 2);
alignLayersByContent( "Auto" );
}
loadLayers.stackLayers = function()
{
var result, i, stackDoc = null;
stackDoc = this.loadStackLayers();
if (! stackDoc)
return;
// Nuke the "destination" layer that got created (M2HDR holdover)
stackDoc.layers[this.pluginName].remove();
// Stack 'em up.
if (this.createSmartObject)
{
selectAllLayers( stackDoc );
executeAction( knewPlacedLayerStr, new ActionDescriptor(), DialogModes.NO );
}
}
// "Main" execution of Merge to HDR
loadLayers.doInteractiveLoad = function ()
{
this.getFilesFromBridgeOrDialog( localize("$$$/private/LoadStack/LoadLayersexv=LoadLayers.exv") );
if (this.stackElements)
this.stackLayers();
else
return 'cancel';
}
loadLayers.intoStack = function(filelist, alignFlag)
{
if (typeof(alignFlag) == 'boolean')
loadLayers.useAlignment = alignFlag;
if (filelist.length < 2)
{
alert(localize("$$$/AdobeScripts/Shared/LoadLayers/AtLeast2=At least two files must be selected to create a stack."), this.pluginName, true );
return;
}
var j;
this.stackElements = new Array();
for (j in filelist)
{
var f = filelist[j];
this.stackElements.push( new StackElement( (typeof(f) == 'string') ? File(f) : f ) );
}
if (this.stackElements.length > 1)
this.stackLayers();
}
if (typeof(loadLayersFromScript) == 'undefined')
loadLayers.doInteractiveLoad();
自分で試したこと
スクリプトの編集は行っていないです。
自分なりに検索しましたが、jsx形式の画像ファイルの読み込み先を変更する場合のコードの記述にたどり着けず、どなたか回答していただければ思い質問させていただきました。
0