PS是一款栅格图像编辑软件,具有许多强大的功能,本文演示如何通过脚本实现秋色效果相关功能,展示从互联网收集而来的一个小插件,供大家学习交流,请勿用于商业用途。
1.插件界面
本文界面是一系列功能的一部分,将逐步展示,但是功能界面是共同的,如下图所示:
d20412ec35fd4e098033671909a2809c.png
2.关键代码-秋色效果
大家可通过源代码阅读,来掌握相关技巧,源代码如下:
cTID = function(s) { return app.charIDToTypeID(s); };
sTID = function(s) { return app.stringIDToTypeID(s); };
//
//==================== Start Autumn Colours ==============
//
function StartAutumnColours() {
// Set
function step1(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putProperty(cTID('Lyr '), cTID('Bckg'));
desc1.putReference(cTID('null'), ref1);
var desc2 = new ActionDescriptor();
desc2.putString(cTID('Nm '), "Base Layer");
desc2.putUnitDouble(cTID('Opct'), cTID('#Prc'), 100);
desc2.putEnumerated(cTID('Md '), cTID('BlnM'), cTID('Nrml'));
desc1.putObject(cTID('T '), cTID('Lyr '), desc2);
executeAction(cTID('setd'), desc1, dialogMode);
};
// Duplicate
function step2(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putEnumerated(cTID('Lyr '), cTID('Ordn'), cTID('Trgt'));
desc1.putReference(cTID('null'), ref1);
desc1.putString(cTID('Nm '), "Base Layer copy");
desc1.putInteger(cTID('Vrsn'), 5);
executeAction(cTID('Dplc'), desc1, dialogMode);
};
// Make
function step3(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putClass(cTID('AdjL'));
desc1.putReference(cTID('null'), ref1);
var desc2 = new ActionDescriptor();
var desc3 = new ActionDescriptor();
desc3.putEnumerated(sTID("presetKind"), sTID("presetKindType"), sTID("presetKindDefault"));
desc3.putBoolean(cTID('Clrz'), false);
desc2.putObject(cTID('Type'), cTID('HStr'), desc3);
desc1.putObject(cTID('Usng'), cTID('AdjL'), desc2);
executeAction(cTID('Mk '), desc1, dialogMode);
};
// Set
function step4(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putEnumerated(cTID('AdjL'), cTID('Ordn'), cTID('Trgt'));
desc1.putReference(cTID('null'), ref1);
var desc2 = new ActionDescriptor();
desc2.putEnumerated(sTID("presetKind"), sTID("presetKindType"), sTID("presetKindCustom"));
var list1 = new ActionList();
var desc3 = new ActionDescriptor();
desc3.putInteger(cTID('LclR'), 3);
desc3.putInteger(cTID('BgnR'), 24);
desc3.putInteger(cTID('BgnS'), 105);
desc3.putInteger(cTID('EndS'), 135);
desc3.putInteger(cTID('EndR'), 195);
desc3.putInteger(cTID('H '), -95);
desc3.putInteger(cTID('Strt'), 0);
desc3.putInteger(cTID('Lght'), 0);
list1.putObject(cTID('Hst2'), desc3);
desc2.putList(cTID('Adjs'), list1);
desc1.putObject(cTID('T '), cTID('HStr'), desc2);
executeAction(cTID('setd'), desc1, dialogMode);
};
// Merge Layers
function step5(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
executeAction(sTID('mergeLayersNew'), desc1, dialogMode);
};
try{step1();} catch(e){errors += e}; // Set
try{step2();} catch(e){errors += e}; // Duplicate
try{step3();} catch(e){errors += e}; // Make
try{step4();} catch(e){errors += e}; // Set
try{step5();} catch(e){errors += e}; // Merge Layers
};
StartAutumnColours.main = function () {
StartAutumnColours();
};
StartAutumnColours.main();
// EOF
"StartAutumnColours.jsx"
// EOF
3.作者答疑
代码长度过长,如需全部项目或有疑问,请留言。
提示: 作者知了-联系方式1
提示: 作者知了-联系方式2