Copy link to clipboard
Copied
I am trying to run the Silver Efex Pro from a script. It used to work fine until I upgraded to CC2018 but now Photoshop crashes and I am baffled as to why.
Can anyone see any reason.
#target photoshop
cTID = function(s) { return app.charIDToTypeID(s); };
sTID = function(s) { return app.stringIDToTypeID(s); };
//==================== sep ==============
function sep() {
// Silver Efex Pro 2
function step1(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
executeAction(sTID('com.niksoftware.sep2.ps'), undefined, dialogMode);
};
step1(); // Silver Efex Pro 2
};
sep.main = function () {
sep();
};
sep.main();
Copy link to clipboard
Copied
Manual call of Silver Efex Pro from the Filter menu does not cause a crash?
Try instead
executeAction (sTID ('com.niksoftware.sep2.ps'), undefined, dialogMode);
use
executeAction (sTID ('com.niksoftware.sep2.ps'), new ActionDescriptor (), dialogMode);
Copy link to clipboard
Copied
Using the following still crashes Photoshop. I just cannot see why this would be
Copy link to clipboard
Copied
You did not say, when you manually call a filter from the filters menu, does the crash happen or not?
Copy link to clipboard
Copied
r-bin wrote
You did not say, when you manually call a filter from the filters menu, does the crash happen or not?
Manually calling from the filter menu appears to work ok
Copy link to clipboard
Copied
OK.
Install, temporarily, the ScriptListener plugin.
https://helpx.adobe.com/photoshop/kb/downloadable-plugins-and-content.html
Launch photoshop. Execute the filter call, close the photoshop, delete the ScriptListener plugin. And post here the file from the Desktop - ScriptingListenerJS.log.
Copy link to clipboard
Copied
This is the result.
// =======================================================
var idinvokeCommand = stringIDToTypeID( "invokeCommand" );
var desc22 = new ActionDescriptor();
var idcommandID = stringIDToTypeID( "commandID" );
desc22.putInteger( idcommandID, -474 );
var idkcanDispatchWhileModal = stringIDToTypeID( "kcanDispatchWhileModal" );
desc22.putBoolean( idkcanDispatchWhileModal, true );
executeAction( idinvokeCommand, desc22, DialogModes.NO );
// =======================================================
var idcom.niksoftware.septwo.ps = stringIDToTypeID( "com.niksoftware.sep2.ps" );
var desc23 = new ActionDescriptor();
var iddRes = charIDToTypeID( "dRes" );
desc23.putInteger( iddRes, 5104 );
var idconf = charIDToTypeID( "conf" );
desc23.putString( idconf, """PFNpbHZlckVmZXhQcm8yX2ZpbHRlcj4KCTxmaWx0ZXIgbmFtZT0iTGVvbmlzRmlsdGVyIj4KCQk8cGFyYW1ldGVyIG5hbWU9ImZpbG1UeXBlc1ByZXNldHMiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImludCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0iZmlsbVR5cGVzUHJlc2V0c19pbnRlcm4iIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImludCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0idG9uaW5nUHJlc2V0cyIgdmFsdWU9IjEiIHZhbHVlVHlwZT0iaW50Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJ0b25pbmdQcmVzZXRzX2ludGVybiIgdmFsdWU9IjEiIHZhbHVlVHlwZT0iaW50Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJ2aWduZXR0ZVByZXNldHMiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImludCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0idmlnbmV0dGVQcmVzZXRzX2ludGVybiIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iaW50Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJidXJuRWRnZXNQcmVzZXRzIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJpbnQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9ImJ1cm5FZGdlc1ByZXNldHNfaW50ZXJuIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJpbnQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9ImJvcmRlclR5cGUiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImludCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0iZ2xvYmFsQnJpZ2h0bmVzcyIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9ImhpQnJpZ2h0bmVzcyIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9Im1lZEJyaWdodG5lc3MiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJsb0JyaWdodG5lc3MiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJhZGFwdGl2ZUJyaWdodG5lc3MiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJnbG9iYWxDb250cmFzdCIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9InNvZnRDb250cmFzdCIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9ImFkYXB0aXZlV1AiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJhZGFwdGl2ZUJQIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0iZ2xvYmFsU3RydWN0dXJlIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0iaGlTdHJ1Y3R1cmUiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJtZWRTdHJ1Y3R1cmUiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJsb1N0cnVjdHVyZSIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9ImZpbmVTdHJ1Y3R1cmUiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJwcm90ZWN0U2hhZG93cyIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9InByb3RlY3RIaWdobGlnaHRzIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0iY29sb3JGaWx0ZXJIdWUiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJjb2xvckZpbHRlclN0cmVuZ3RoIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0ic2Vuc1IiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJzZW5zWWUiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJzZW5zRyIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9InNlbnNDeSIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9InNlbnNCIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0ic2Vuc01nIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0idmlnU3RyZW5ndGgiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJ2aWdTaGFwZSIgdmFsdWU9IjIiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9InZpZ1NpemUiIHZhbHVlPSI1MCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0idmlnbmV0dGVDZW50ZXJYIiB2YWx1ZT0iMC41IiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJ2aWduZXR0ZUNlbnRlclkiIHZhbHVlPSIwLjUiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9ImdyYWluU2xpZGVyU3RyZW5ndGgiIHZhbHVlPSI1MDAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9ImdyYWluU2xpZGVyU29mdG5lc3MiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJ0b25lSHVlTG93IiB2YWx1ZT0iMzAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9InRvbmVIdWVIaWdoIiB2YWx1ZT0iNTAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9InRvbmVIdWVCYWxhbmNlIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0idG9uZVN0cmVuZ3RoSGlnaFJlbGF0aXZlIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0idG9uZVN0cmVuZ3RoTG93UmVsYXRpdmUiIHZhbHVlPSIxIiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJ0b25lU3RyZW5ndGhIaWdoIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0idG9uZVN0cmVuZ3RoTG93IiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0idG9uaW5nU3RyZW5ndGgiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJiZVN0cmVuZ3RoTGVmdCIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9ImJlU3RyZW5ndGhSaWdodCIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9ImJlU3RyZW5ndGhUb3AiIHZhbHVlPSIwIiB2YWx1ZVR5cGU9ImZsb2F0Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJiZVN0cmVuZ3RoQm90dG9tIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0iYmVTaXplTGVmdCIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9ImJlU2l6ZVJpZ2h0IiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0iYmVTaXplVG9wIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0iYmVTaXplQm90dG9tIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0iYmVUcmFuc2l0aW9uTGVmdCIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9ImJlVHJhbnNpdGlvblJpZ2h0IiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0iYmVUcmFuc2l0aW9uVG9wIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0iYmVUcmFuc2l0aW9uQm90dG9tIiB2YWx1ZT0iMCIgdmFsdWVUeXBlPSJmbG9hdCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0iYm9yZGVyU2l6ZSIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9ImJvcmRlclNwcmVhZCIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9ImJvcmRlclJhbmRvbSIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9ImJvcmRlckdydW5nZSIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iZmxvYXQiLz4KCQk8cGFyYW1ldGVyIG5hbWU9Im1haW5Db250cm9sc0VuYWJsZWQiIHZhbHVlPSIxIiB2YWx1ZVR5cGU9ImludCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0iY29udHJvbFBvaW50TGlzdEVuYWJsZWQiIHZhbHVlPSIxIiB2YWx1ZVR5cGU9ImludCIvPgoJCTxwYXJhbWV0ZXIgbmFtZT0iY29sb3JGaWx0ZXJTZWN0aW9uRW5hYmxlZCIgdmFsdWU9IjEiIHZhbHVlVHlwZT0iaW50Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJmaWxtVHlwZXNTZWN0aW9uRW5hYmxlZCIgdmFsdWU9IjEiIHZhbHVlVHlwZT0iaW50Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJzdHlsaXppbmdTZWN0aW9uRW5hYmxlZCIgdmFsdWU9IjEiIHZhbHVlVHlwZT0iaW50Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJpbmtpbmdEZWFrdGl2YXRlZEZvclNhdmluZyIgdmFsdWU9IjAiIHZhbHVlVHlwZT0iaW50Ii8+CgkJPHBhcmFtZXRlciBuYW1lPSJsYWNkYXRhIiB2YWx1ZT0nJmx0O0xhY19zZXJpYWxpemF0aW9uJmd0OwoJJmx0O2tleSBuYW1lPSJsb3dOb2RlWCIgdmFsdWU9IjAiLyZndDsKCSZsdDtrZXkgbmFtZT0ibG93Tm9kZVkiIHZhbHVlPSIwIi8mZ3Q7CgkmbHQ7a2V5IG5hbWU9ImhpZ2hOb2RlWCIgdmFsdWU9IjEiLyZndDsKCSZsdDtrZXkgbmFtZT0iaGlnaE5vZGVZIiB2YWx1ZT0iMSIvJmd0OwoJJmx0O2tleSBuYW1lPSJnYW1tYSIgdmFsdWU9IjAiLyZndDsKCSZsdDtrZXkgbmFtZT0iaW50Tm9kZUNvdW50IiB2YWx1ZT0iMCIvJmd0OwombHQ7L0xhY19zZXJpYWxpemF0aW9uJmd0OwonIHZhbHVlVHlwZT0iaW50Ii8+Cgk8L2ZpbHRlcj4KPC9TaWx2ZXJFZmV4UHJvMl9maWx0ZXI+CgoA""" );
executeAction( idcom.niksoftware.septwo.ps, desc23, DialogModes.NO );
Copy link to clipboard
Copied
Try to execute script
var d = new ActionDescriptor();
d.putInteger( charIDToTypeID( "dRes" ), 5104 );
d.putString( charIDToTypeID( "conf" ), "");
executeAction( stringIDToTypeID( "com.niksoftware.sep2.ps" ), d, DialogModes.ALL );
If ok then try
var d = new ActionDescriptor();
d.putString( charIDToTypeID( "conf" ), "");
executeAction( stringIDToTypeID( "com.niksoftware.sep2.ps" ), d, DialogModes.ALL );
If ok then replace in two scripts DialogModes.ALL to DialogModes.NO and run both scripts again
Report the results please.
Copy link to clipboard
Copied
var d = new ActionDescriptor();
d.putInteger( charIDToTypeID( "dRes" ), 5104 );
d.putString( charIDToTypeID( "conf" ), "");
executeAction( stringIDToTypeID( "com.niksoftware.sep2.ps" ), d, DialogModes.ALL );
This loads Silver Efex but then causes Photoshop to Stop Responding, only way to close the app is to force quit
Copy link to clipboard
Copied
I can not test anything since I do not have this filter.
In extreme cases, you can try to use that long line
d.putString (charIDToTypeID ("conf"), "... very lo ng strin ...
But it will probably call a filter with some predefined parameters, which is probably not desirable. And which can be dependent on the parameter of the current layer, for example its dimensions.
It's strange that it worked in CC2017. Is the version of the plugin the same?
Copy link to clipboard
Copied