omdf00
@omdf00 (うめさん)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

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

No Answers yet.

Your answer might help someone💌