文章目录
PS是一款栅格图像编辑软件,具有许多强大的功能,本文演示如何通过脚本实现秋色效果相关功能,展示从互联网收集而来的一个小插件,供大家学习交流,请勿用于商业用途。
1.插件界面
-
- 1.插件界面
- 2.关键代码-秋色效果
- 3.作者答疑
本文界面是一系列功能的一部分,将逐步展示,但是功能界面是共同的,如下图所示:
大家可通过源代码阅读,来掌握相关技巧,源代码如下:
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" // EOF3.作者答疑
如有疑问,请留言。