文章目录

  • 1.插件界面
  • 2.关键代码-创建所有亮度通道蒙板
  • 3.代码转执行
  • 4.作者答疑

  PS是一款栅格图像编辑软件,模块众多。提供了脚本,动态连接库等多种扩展机制,本文演示如何通过脚本实现创建所有亮度通道蒙板相关功能,展示从互联网收集而来的一个小插件,供大家学习交流,请勿用于商业用途。

1.插件界面

  本文界面是一系列功能的一部分,将逐步展示,但是功能界面是共同的,如下图所示:

2.关键代码-创建所有亮度通道蒙板

  大家可通过源代码阅读,来掌握相关技巧,源代码如下:

// jamEngine.jsxinc v4.4 (minified)
if(typeof jamEngine!=='object') {var jamEngine={};(function() {var that;jamEngine.meaningfulIds=false;jamEngine.parseFriendly=false;var conflictingStringIdStrs={"'Algn'":["align","alignment"],"'AntA'":["antiAlias","antiAliasedPICTAcquire"],"'BckL'":["backgroundLayer","backgroundLevel"],"'BlcG'":["blackGenerationType","blackGenerationCurve"],"'BlcL'":["blackLevel","blackLimit"],"'Blks'":["blacks","blocks"],"'BlrM'":["blurMethod","blurMore"],"'BrgC'":["brightnessEvent","brightnessContrast"],"'BrsD'":["brushDetail","brushesDefine"],"'Brsh'":["brush","brushes"],"'Clcl'":["calculation","calculations"],"'ClrP'":["colorPalette","coloredPencil"],"'Cnst'":["constant","constrain"],"'CntC'":["centerCropMarks","conteCrayon"],"'Cntr'":["center","contrast"],"'CrtD'":["createDroplet","createDuplicate"],"'CstP'":["customPalette","customPhosphors"],"'Cstm'":["custom","customPattern"],"'Drkn'":["darken","darkness"],"'Dstr'":["distort","distortion","distribute","distribution"],"'Dstt'":["desaturate","destWhiteMax"],"'FlIn'":["fileInfo","fillInverse"],"'Gd  '":["good","guide"],"'GnrP'":["generalPreferences","generalPrefs","preferencesClass"],"'GrSt'":["grainStippled","graySetup"],"'Grdn'":["gradientClassEvent","gridMinor"],"'Grn '":["grain","green"],"'Grns'":["graininess","greens"],"'HstP'":["historyPreferences","historyPrefs"],"'HstS'":["historyState","historyStateSourceType"],"'ImgP'":["imageCachePreferences","imagePoint"],"'In  '":["in","stampIn"],"'IntW'":["interfaceWhite","intersectWith"],"'Intr'":["interfaceIconFrameDimmed","interlace","interpolation","intersect"],"'JPEG'":["JPEG","JPEGFormat"],"'LghD'":["lightDirection","lightDirectional"],"'LghO'":["lightOmni","lightenOnly"],"'LghS'":["lightSource","lightSpot"],"'Lns '":["lens","lines"],"'Mgnt'":["magenta","magentas"],"'MrgL'":["mergeLayers","mergedLayers"],"'Mxm '":["maximum","maximumQuality"],"'NTSC'":["NTSC","NTSCColors"],"'NmbL'":["numberOfLayers","numberOfLevels"],"'PlgP'":["pluginPicker","pluginPrefs"],"'Pncl'":["pencilEraser","pencilWidth"],"'Pnt '":["paint","point"],"'Prsp'":["perspective","perspectiveIndex"],"'PrvM'":["previewMacThumbnail","previewMagenta"],"'Pstr'":["posterization","posterize"],"'RGBS'":["RGBSetup","RGBSetupSource"],"'Rds '":["radius","reds"],"'ScrD'":["scratchDisks","screenDot"],"'ShdI'":["shadingIntensity","shadowIntensity"],"'ShpC'":["shapeCurveType","shapingCurve"],"'ShrE'":["sharpenEdges","shearEd"],"'Shrp'":["sharpen","sharpness"],"'SplC'":["splitChannels","supplementalCategories"],"'Spot'":["spot","spotColor"],"'SprS'":["separationSetup","sprayedStrokes"],"'StrL'":["strokeLength","strokeLocation"],"'Strt'":["saturation","start"],"'TEXT'":["char","textType"],"'TIFF'":["TIFF","TIFFFormat"],"'TglO'":["toggleOptionsPalette","toggleOthers"],"'TrnG'":["transparencyGamutPreferences","transparencyGrid","transparencyGridSize"],"'TrnS'":["transferSpec","transparencyShape","transparencyStop"],"'Trns'":["transparency","transparent"],"'TxtC'":["textClickPoint","textureCoverage"],"'TxtF'":["textureFile","textureFill"],"'UsrM'":["userMaskEnabled","userMaskOptions"],"'c@#^'":["inherits","pInherits"],"'comp'":["comp","sInt64"],"'doub'":["floatType","IEEE64BitFloatingPoint","longFloat"],"'long'":["integer","longInteger","sInt32"],"'magn'":["magnitude","uInt32"],"'null'":["null","target"],"'shor'":["sInt16","sMInt","shortInteger"],"'sing'":["IEEE32BitFloatingPoint","sMFloat","shortFloat"]};jamEngine.getConflictingStringIdStrs=function(charIdStr) {return conflictingStringIdStrs[charIdStr]||null;};jamEngine.uniIdStrToId=function(uniIdStr) {var id=0;if(typeof uniIdStr==='string') {if((uniIdStr.length===(1+4+1))&&(uniIdStr.charAt(0)==="'")&&(uniIdStr.charAt(5)==="'")) {id=app.charIDToTypeID(uniIdStr.substring(1,5));} else {id=app.stringIDToTypeID(uniIdStr);}} return id;};var smallestHashValue=app.charIDToTypeID("    ");jamEngine.idToUniIdStrs=function(id) {var charIdStr="";var stringIdStr=app.typeIDToStringID(id);if(id>=smallestHashValue) {charIdStr="'"+app.typeIDToCharID(id)+"'";if(stringIdStr!=="") {if(charIdStr in conflictingStringIdStrs) {stringIdStr=conflictingStringIdStrs[charIdStr];}}} return[charIdStr,stringIdStr];};jamEngine.equivalentUniIdStrs=function(uniIdStr1,uniIdStr2) {return this.uniIdStrToId(uniIdStr1)===this.uniIdStrToId(uniIdStr2);};function putInReference(ref,containers) {if(containers.constructor===Array) {var count=containers.length;for(var i=0;i<count;i++) {var container=that.parseCompact(containers[i]);var desiredClassId=that.uniIdStrToId(container[0]);var typedValue=that.parseCompact(container[1]);var form=typedValue[0];var value=typedValue[1];switch(form) {case"<class>":ref.putClass(desiredClassId);break;case"<enumerated>":var enumerated=that.parseCompact(value);ref.putEnumerated(desiredClassId,that.uniIdStrToId(enumerated[0]),that.uniIdStrToId(enumerated[1]));break;case"<identifier>":ref.putIdentifier(desiredClassId,value);break;case"<index>":ref.putIndex(desiredClassId,value);break;case"<name>":ref.putName(desiredClassId,value);break;case"<offset>":ref.putOffset(desiredClassId,value);break;case"<property>":ref.putProperty(desiredClassId,that.uniIdStrToId(value));break;default:throw new Error("[jamEngine putInReference] Unknown reference form: "+form);break;}}} else {throw new Error("[jamEngine putInReference] JavaScript array expected");}} function putInList(list,items) {if(items.constructor===Array) {var count=items.length;for(var i=0;i<count;i++) {var item=that.parseCompact(items[i]);var type=item[0];var value=item[1];switch(type) {case"<boolean>":list.putBoolean(value);break;case"<class>":list.putClass(that.uniIdStrToId(value));break;case"<data>":list.putData(value);break;case"<double>":list.putDouble(value);break;case"<enumerated>":var enumerated=that.parseCompact(value);list.putEnumerated(that.uniIdStrToId(enumerated[0]),that.uniIdStrToId(enumerated[1]));break;case"<integer>":list.putInteger(value);break;case"<largeInteger>":list.putLargeInteger(value);break;case"<list>":var actionList=new ActionList();putInList(actionList,value);list.putList(actionList);break;case"<object>":var object=that.parseCompact(value);if(object[1]) {var actionDescriptor=new ActionDescriptor();putInDescriptor(actionDescriptor,object[1]);list.putObject(that.uniIdStrToId(object[0]),actionDescriptor);} else {list.putClass(that.uniIdStrToId(object[0]));} break;case"<path>":var fileRef=new File(value);list.putPath(fileRef);break;case"<reference>":var actionReference=new ActionReference();putInReference(actionReference,value);list.putReference(actionReference);break;case"<string>":list.putString(value);break;case"<unitDouble>":var unitDouble=that.parseCompact(value);list.putUnitDouble(that.uniIdStrToId(unitDouble[0]),unitDouble[1]);break;default:throw new Error("[jamEngine putInList] Unknown list type: "+type);break;}}} else {throw new Error("[jamEngine putInList] JavaScript array expected");}} function putInDescriptor(desc,members) {if(members.constructor===Object) {for(var key in members) {if(members.hasOwnProperty(key)) {var keyID=that.uniIdStrToId(key);var member=that.parseCompact(members[key]);var type=member[0];var value=member[1];switch(type) {case"<boolean>":desc.putBoolean(keyID,value);break;case"<class>":desc.putClass(keyID,that.uniIdStrToId(value));break;case"<data>":desc.putData(keyID,value);break;case"<double>":desc.putDouble(keyID,value);break;case"<enumerated>":var enumerated=that.parseCompact(value);desc.putEnumerated(keyID,that.uniIdStrToId(enumerated[0]),that.uniIdStrToId(enumerated[1]));break;case"<integer>":desc.putInteger(keyID,value);break;case"<largeInteger>":desc.putLargeInteger(keyID,value);break;case"<list>":var actionList=new ActionList();putInList(actionList,value);desc.putList(keyID,actionList);break;case"<object>":var object=that.parseCompact(value);if(object[1]) {var actionDescriptor=new ActionDescriptor();putInDescriptor(actionDescriptor,object[1]);desc.putObject(keyID,that.uniIdStrToId(object[0]),actionDescriptor);} else {desc.putClass(keyID,that.uniIdStrToId(object[0]));} break;case"<path>":var fileRef=new File(value);desc.putPath(keyID,fileRef);break;case"<reference>":var actionReference=new ActionReference();putInReference(actionReference,value);desc.putReference(keyID,actionReference);break;case"<string>":desc.putString(keyID,value);break;case"<unitDouble>":var unitDouble=that.parseCompact(value);desc.putUnitDouble(keyID,that.uniIdStrToId(unitDouble[0]),unitDouble[1]);break;default:throw new Error("[jamEngine putInDescriptor] Unknown descriptor type: "+type);break;}}}} else {throw new Error("[jamEngine putInDescriptor] JavaScript object expected");}} var contextRules={"'Algn'":{"<classKey>":{"bevelEmboss":"align","frameFX":"align","gradientFill":"align","gradientLayer":"align","patternFill":"align","patternLayer":"align"},"<event>":"align","<key>":"alignment"},"'AntA'":{"<class>":"antiAliasedPICTAcquire","<key>":"antiAlias"},"'BckL'":{"<class>":"backgroundLayer","<key>":"backgroundLevel"},"'BlcG'":{"<enumType>":"blackGenerationType","<key>":"blackGenerationCurve"},"'BlcL'":{"<classKey>":{"'GEfc'":"blackLevel","CMYKSetup":"blackLimit"},"<eventKey>":{"reticulation":"blackLevel"}},"'Blks'":{"<typeValue>":{"colors":"blacks","extrudeType":"blocks"}},"'BlrM'":{"<enumType>":"blurMethod","<event>":"blurMore","<key>":"blurMethod"},"'BrgC'":{"<class>":"brightnessContrast","<event>":"brightnessContrast"},"'BrsD'":{"<enumValue>":"brushesDefine","<key>":"brushDetail"},"'Brsh'":{"<class>":"brush","<key>":"brushes"},"'Clcl'":{"<class>":"calculation","<enumValue>":"calculations","<key>":"calculation"},"'ClrP'":{"<typeValue>":{"'GEft'":"coloredPencil"},"<enumType>":"colorPalette","<event>":"coloredPencil"},"'Cnst'":{"<classKey>":{"channelMatrix":"constant"},"<unknown>":"constrain"},"'CntC'":{"<typeValue>":{"'GEft'":"conteCrayon"},"<event>":"conteCrayon","<key>":"centerCropMarks"},"'Cntr'":{"<classKey>":{"'GEfc'":"contrast","brightnessContrast":"contrast","document":"center","polygon":"center","quadrilateral":"center"},"<eventKey>":{"adaptCorrect":"contrast","brightnessEvent":"contrast","grain":"contrast","halftoneScreen":"contrast","sumie":"contrast","tornEdges":"contrast","waterPaper":"contrast"},"<enumValue>":"center"},"'CrtD'":{"<enumValue>":"createDuplicate","<event>":"createDroplet"},"'CstP'":{"<class>":"customPhosphors","<key>":"customPalette"},"'Cstm'":{"<enumValue>":"customPattern","<event>":"custom","<key>":"custom"},"'Drkn'":{"<enumValue>":"darken","<key>":"darkness"},"'Dstr'":{"<classKey>":{"'GEfc'":"distortion"},"<eventKey>":{"glass":"distortion","addNoise":"distribution"},"<enumType>":"distribution","<enumValue>":"distort","<event>":"distribute"},"'Dstt'":{"<enumValue>":"desaturate","<event>":"desaturate","<key>":"destWhiteMax"},"'FlIn'":{"<typeValue>":{"fillColor":"fillInverse","menuItemType":"fileInfo"},"<class>":"fileInfo","<key>":"fileInfo"},"'Gd  '":{"<class>":"guide","<enumValue>":"good"},"'GnrP'":{"<class>":"preferencesClass","<enumValue>":"generalPreferences","<key>":"generalPrefs"},"'GrSt'":{"<class>":"graySetup","<enumValue>":"grainStippled","<key>":"graySetup"},"'Grdn'":{"<class>":"gradientClassEvent","<event>":"gradientClassEvent","<key>":"gridMinor"},"'Grn '":{"<typeValue>":{"'GEft'":"grain"},"<classKey>":{"'GEfc'":"grain","RGBColor":"green","blackAndWhite":"green","channelMatrix":"green","channelMixer":"green"},"<eventKey>":{"blackAndWhite":"green","channelMixer":"green","filmGrain":"grain"},"<enumValue>":"green","<event>":"grain"},"'Grns'":{"<enumValue>":"greens","<key>":"graininess"},"'HstP'":{"<enumValue>":"historyPreferences","<key>":"historyPrefs"},"'HstS'":{"<class>":"historyState","<enumType>":"historyStateSourceType"},"'ImgP'":{"<class>":"imagePoint","<enumValue>":"imageCachePreferences"},"'In  '":{"<enumValue>":"stampIn","<key>":"in"},"'IntW'":{"<event>":"intersectWith","<key>":"interfaceWhite"},"'Intr'":{"<typeValue>":{"shapeOperation":"intersect"},"<classKey>":{"GIFFormat":"interlace","SaveForWeb":"interlace","application":"interfaceIconFrameDimmed","computedBrush":"interpolation","gradientClassEvent":"interpolation","photoshopEPSFormat":"interpolation"},"<eventKey>":{"convertMode":"interpolation","imageSize":"interpolation","transform":"interpolation"},"<event>":"intersect"},"'JPEG'":{"<class>":"JPEGFormat","<enumValue>":"JPEG"},"'LghD'":{"<enumType>":"lightDirection","<enumValue>":"lightDirectional","<key>":"lightDirection"},"'LghO'":{"<typeValue>":{"diffuseMode":"lightenOnly","lightType":"lightOmni"}},"'LghS'":{"<class>":"lightSource","<enumValue>":"lightSpot","<key>":"lightSource"},"'Lns '":{"<enumType>":"lens","<enumValue>":"lines","<key>":"lens"},"'Mgnt'":{"<typeValue>":{"channel":"magenta","colors":"magentas","guideGridColor":"magenta"},"<key>":"magenta"},"'MrgL'":{"<enumValue>":"mergedLayers","<event>":"mergeLayers"},"'Mxm '":{"<enumValue>":"maximumQuality","<event>":"maximum","<key>":"maximum"},"'NTSC'":{"<enumValue>":"NTSC","<event>":"NTSCColors"},"'NmbL'":{"<classKey>":{"'GEfc'":"numberOfLevels","document":"numberOfLayers"},"<eventKey>":{"cutout":"numberOfLevels"}},"'PlgP'":{"<class>":"pluginPrefs","<enumValue>":"pluginPicker","<key>":"pluginPrefs"},"'Pncl'":{"<enumValue>":"pencilEraser","<key>":"pencilWidth"},"'Pnt '":{"<typeValue>":{"textType":"point"},"<class>":"point","<event>":"paint"},"'Prsp'":{"<enumValue>":"perspective","<key>":"perspectiveIndex"},"'PrvM'":{"<enumValue>":"previewMagenta","<key>":"previewMacThumbnail"},"'Pstr'":{"<class>":"posterize","<event>":"posterize","<key>":"posterization"},"'RGBS'":{"<enumType>":"RGBSetupSource","<key>":"RGBSetup"},"'Rds '":{"<enumValue>":"reds","<key>":"radius"},"'ScrD'":{"<enumValue>":"screenDot","<key>":"scratchDisks"},"'ShdI'":{"<classKey>":{"'GEfc'":"shadowIntensity"},"<eventKey>":{"watercolor":"shadowIntensity"},"<unknown>":"shadingIntensity"},"'ShpC'":{"<classKey>":{"application":"shapingCurve"},"<class>":"shapingCurve","<key>":"shapeCurveType"},"'ShrE'":{"<event>":"sharpenEdges","<key>":"shearEd"},"'Shrp'":{"<event>":"sharpen","<key>":"sharpness"},"'SplC'":{"<event>":"splitChannels","<key>":"supplementalCategories"},"'Spot'":{"<enumValue>":"spotColor","<key>":"spot"},"'SprS'":{"<typeValue>":{"'GEft'":"sprayedStrokes"},"<enumValue>":"separationSetup","<event>":"sprayedStrokes"},"'StrL'":{"<enumType>":"strokeLocation","<key>":"strokeLength"},"'Strt'":{"<classKey>":{"currentToolOptions":"saturation","fileNamingRules":"start","HSBColorClass":"saturation","hueSatAdjustment":"saturation","hueSatAdjustmentV2":"saturation","lineClass":"start","range":"start","vibrance":"saturation"},"<eventKey>":{"replaceColor":"saturation","variations":"saturation","vibrance":"saturation"},"<enumValue>":"saturation"},"'TEXT'":{"<enumType>":"textType","<key>":"textType"},"'TIFF'":{"<class>":"TIFFFormat","<enumValue>":"TIFF"},"'TglO'":{"<enumValue>":"toggleOptionsPalette","<key>":"toggleOthers"},"'TrnG'":{"<classKey>":{"application":"transparencyGrid","transparencyPrefs":"transparencyGridSize"},"<enumType>":"transparencyGridSize","<enumValue>":"transparencyGamutPreferences"},"'TrnS'":{"<classKey>":{"bevelEmboss":"transparencyShape","dropShadow":"transparencyShape","innerGlow":"transparencyShape","innerShadow":"transparencyShape","outerGlow":"transparencyShape"},"<class>":"transparencyStop","<unknown>":"transferSpec"},"'Trns'":{"<enumValue>":"transparent","<key>":"transparency"},"'TxtC'":{"<classKey>":{"'GEfc'":"textureCoverage","textLayer":"textClickPoint"},"<eventKey>":{"underpainting":"textureCoverage"}},"'TxtF'":{"<event>":"textureFill","<key>":"textureFile"},"'UsrM'":{"<enumType>":"userMaskOptions","<key>":"userMaskEnabled"},"'null'":{"<class>":"null","<enumValue>":"null","<event>":"null","<key>":"target"}};function getFromId(context,parentContext) {var uniIdStr;var kind=context[0];var id=context[1];if(id<smallestHashValue) {uniIdStr=app.typeIDToStringID(id);} else {uniIdStr="'"+app.typeIDToCharID(id)+"'";if(that.meaningfulIds) {if(uniIdStr in contextRules) {function resolveIdStr(candidates) {var idStr="";for(var parentString in candidates) {if(candidates.hasOwnProperty(parentString)) {if(parentContext[1]===that.uniIdStrToId(parentString)) {idStr=candidates[parentString];break;}}} return idStr;} var resolvedIdStr="";var rule=contextRules[uniIdStr];if(parentContext) {switch(kind) {case"<key>":if((parentContext[0]==="<class>")&&("<classKey>"in rule)) {resolvedIdStr=resolveIdStr(rule["<classKey>"]);} else if((parentContext[0]==="<event>")&&("<eventKey>"in rule)) {resolvedIdStr=resolveIdStr(rule["<eventKey>"]);} break;case"<enumValue>":if((parentContext[0]==="<enumType>")&&("<typeValue>"in rule)) {resolvedIdStr=resolveIdStr(rule["<typeValue>"]);} break;}} if(resolvedIdStr!=="") {uniIdStr=resolvedIdStr;} else if(kind in rule) {uniIdStr=rule[kind];}} else {var stringIDStr=app.typeIDToStringID(id);if(stringIDStr!=="") {uniIdStr=stringIDStr;}}}} return uniIdStr;} var incompatiblePlatformPath="";var getEventId=app.stringIDToTypeID("get");var targetKeyId=app.stringIDToTypeID("target");var propertyClassId=app.stringIDToTypeID("property");function getFromReference(ref) {var propertyId=0;var arr=[];do {try{var desiredClassId=ref.getDesiredClass();}catch(e){break;} if(propertyId!==0) {var propertyCompact=that.buildCompact("<property>",getFromId(["<key>",propertyId],["<class>",desiredClassId]));arr.push(that.buildCompact(getFromId(["<class>",propertyClassId]),propertyCompact));propertyId=0;} var desiredCompact;var aFormID=ref.getForm();switch(aFormID) {case ReferenceFormType.CLASSTYPE:desiredCompact=that.buildCompact("<class>",null);break;case ReferenceFormType.ENUMERATED:var enumTypeContext=["<enumType>",ref.getEnumeratedType()];var enumValueContext=["<enumValue>",ref.getEnumeratedValue()];desiredCompact=that.buildCompact("<enumerated>",that.buildCompact(getFromId(enumTypeContext),getFromId(enumValueContext,enumTypeContext)));break;case ReferenceFormType.IDENTIFIER:desiredCompact=that.buildCompact("<identifier>",ref.getIdentifier());break;case ReferenceFormType.INDEX:desiredCompact=that.buildCompact("<index>",ref.getIndex());break;case ReferenceFormType.NAME:desiredCompact=that.buildCompact("<name>",ref.getName());break;case ReferenceFormType.OFFSET:desiredCompact=that.buildCompact("<offset>",ref.getOffset());break;case ReferenceFormType.PROPERTY:if(desiredClassId===propertyClassId) {propertyId=ref.getProperty();} else {desiredCompact=that.buildCompact("<property>",getFromId(["<key>",ref.getProperty()],["<class>",desiredClassId]));} break;default:throw new Error("[jamEngine getFromReference] Unknown reference form type: "+aFormID);break;} if(desiredClassId!==propertyClassId) {arr.push(that.buildCompact(getFromId(["<class>",desiredClassId]),desiredCompact));} ref=ref.getContainer();} while(ref);return arr;} function getFromList(list) {var arr=[];var itemCount=list.count;for(var itemIndex=0;itemIndex<itemCount;itemIndex++) {var itemCompact;var typeID;try{typeID=list.getType(itemIndex);}catch(e){continue;} switch(typeID) {case DescValueType.BOOLEANTYPE:itemCompact=that.buildCompact("<boolean>",list.getBoolean(itemIndex));break;case DescValueType.CLASSTYPE:itemCompact=that.buildCompact("<class>",getFromId(["<class>",list.getClass(itemIndex)]));break;case DescValueType.DOUBLETYPE:itemCompact=that.buildCompact("<double>",list.getDouble(itemIndex));break;case DescValueType.ENUMERATEDTYPE:var enumTypeContext=["<enumType>",list.getEnumerationType(itemIndex)];var enumValueContext=["<enumValue>",list.getEnumerationValue(itemIndex)];itemCompact=that.buildCompact("<enumerated>",that.buildCompact(getFromId(enumTypeContext),getFromId(enumValueContext,enumTypeContext)));break;case DescValueType.INTEGERTYPE:itemCompact=that.buildCompact("<integer>",list.getInteger(itemIndex));break;case DescValueType.LISTTYPE:itemCompact=that.buildCompact("<list>",getFromList(list.getList(itemIndex)));break;case DescValueType.OBJECTTYPE:var objectTypeContext=["<class>",list.getObjectType(itemIndex)];var objectValue=list.getObjectValue(itemIndex);itemCompact=that.buildCompact("<object>",that.buildCompact(getFromId(objectTypeContext),getFromDescriptor(objectValue,objectTypeContext)));break;case DescValueType.ALIASTYPE:try {var fileRef=list.getPath(itemIndex);itemCompact=that.buildCompact("<path>",fileRef.fsName);} catch(e) {itemCompact=that.buildCompact("<path>",incompatiblePlatformPath);} break;case DescValueType.REFERENCETYPE:itemCompact=that.buildCompact("<reference>",getFromReference(list.getReference(itemIndex)));break;case DescValueType.STRINGTYPE:itemCompact=that.buildCompact("<string>",list.getString(itemIndex));break;case DescValueType.UNITDOUBLE:var unitTypeContext=["<unit>",list.getUnitDoubleType(itemIndex)];var doubleValue=list.getUnitDoubleValue(itemIndex);itemCompact=that.buildCompact("<unitDouble>",that.buildCompact(getFromId(unitTypeContext),doubleValue));break;default:var isRawType;var isLargeIntegerType;try{isRawType=(typeID===DescValueType.RAWTYPE);}catch(e){} try{isLargeIntegerType=(typeID===DescValueType.LARGEINTEGERTYPE);}catch(e){} if(isRawType) {itemCompact=that.buildCompact("<data>",list.getData(itemIndex));} else if(isLargeIntegerType) {itemCompact=that.buildCompact("<largeInteger>",list.getLargeInteger(itemIndex));} else {throw new Error("[jamEngine getFromList] Unknown descriptor value type: "+typeID);} break;} arr[itemIndex]=itemCompact;} return arr;} function getFromDescriptor(desc,parentContext) {if(desc) {var obj={};var keyCount;try{keyCount=desc.count;}catch(e){return null;} for(var keyIndex=0;keyIndex<keyCount;keyIndex++) {var keyID=desc.getKey(keyIndex);var keyString=getFromId(["<key>",keyID],parentContext);var keyCompact;var typeID;try{typeID=desc.getType(keyID);}catch(e){continue;} switch(typeID) {case DescValueType.BOOLEANTYPE:keyCompact=that.buildCompact("<boolean>",desc.getBoolean(keyID));break;case DescValueType.CLASSTYPE:keyCompact=that.buildCompact("<class>",getFromId(["<class>",desc.getClass(keyID)]));break;case DescValueType.DOUBLETYPE:keyCompact=that.buildCompact("<double>",desc.getDouble(keyID));break;case DescValueType.ENUMERATEDTYPE:var enumTypeContext=["<enumType>",desc.getEnumerationType(keyID)];var enumValueContext=["<enumValue>",desc.getEnumerationValue(keyID)];keyCompact=that.buildCompact("<enumerated>",that.buildCompact(getFromId(enumTypeContext),getFromId(enumValueContext,enumTypeContext)));break;case DescValueType.INTEGERTYPE:keyCompact=that.buildCompact("<integer>",desc.getInteger(keyID));break;case DescValueType.LISTTYPE:keyCompact=that.buildCompact("<list>",getFromList(desc.getList(keyID)));break;case DescValueType.OBJECTTYPE:var objectTypeContext=["<class>",desc.getObjectType(keyID)];var objectValue=desc.getObjectValue(keyID);keyCompact=that.buildCompact("<object>",that.buildCompact(getFromId(objectTypeContext),getFromDescriptor(objectValue,objectTypeContext)));break;case DescValueType.ALIASTYPE:try {var fileRef=desc.getPath(keyID);keyCompact=that.buildCompact("<path>",fileRef.fsName);} catch(e) {keyCompact=that.buildCompact("<path>",incompatiblePlatformPath);} break;case DescValueType.REFERENCETYPE:keyCompact=that.buildCompact("<reference>",getFromReference(desc.getReference(keyID)));break;case DescValueType.STRINGTYPE:keyCompact=that.buildCompact("<string>",desc.getString(keyID));break;case DescValueType.UNITDOUBLE:var unitTypeContext=["<unit>",desc.getUnitDoubleType(keyID)];var doubleValue=desc.getUnitDoubleValue(keyID);keyCompact=that.buildCompact("<unitDouble>",that.buildCompact(getFromId(unitTypeContext),doubleValue));break;default:var isRawType;var isLargeIntegerType;try{isRawType=(typeID===DescValueType.RAWTYPE);}catch(e){} try{isLargeIntegerType=(typeID===DescValueType.LARGEINTEGERTYPE);}catch(e){} if(isRawType) {keyCompact=that.buildCompact("<data>",desc.getData(keyID));} else if(isLargeIntegerType) {keyCompact=that.buildCompact("<largeInteger>",desc.getLargeInteger(keyID));} else {throw new Error("[jamEngine getFromDescriptor] Unknown descriptor value type: "+typeID);} break;} obj[keyString]=keyCompact;} return obj;} else {return null;}} jamEngine.jsonToActionDescriptor=function(descriptorObj) {that=this;var actionDescriptor;if(descriptorObj) {actionDescriptor=new ActionDescriptor();putInDescriptor(actionDescriptor,descriptorObj);} return actionDescriptor;};jamEngine.jsonToActionReference=function(referenceArr) {that=this;var actionReference;if(referenceArr) {actionReference=new ActionReference();putInReference(actionReference,referenceArr);} return actionReference;};jamEngine.eventIdAndActionDescriptorToJson=function(eventId,actionDescriptor) {that=this;var eventIdContext=["<event>",eventId];return{"<event>":getFromId(eventIdContext),"<descriptor>":getFromDescriptor(actionDescriptor,eventIdContext)};};jamEngine.classIdAndActionDescriptorToJson=function(classId,actionDescriptor) {that=this;var classIdContext=["<class>",classId];return{"<class>":getFromId(classIdContext),"<descriptor>":getFromDescriptor(actionDescriptor,classIdContext)};};jamEngine.actionReferenceToJson=function(actionReference) {that=this;return getFromReference(actionReference);};function getReferenceClassId(ref) {classId=0;do {try{var desiredClassId=ref.getDesiredClass();}catch(e){break;} if(desiredClassId!==propertyClassId) {classId=desiredClassId;break;} ref=ref.getContainer();} while(ref);return classId;} jamEngine.jsonPlay=function(eventUniIdStr,descriptorObj,displayDialogs) {var eventId=this.uniIdStrToId(eventUniIdStr);var desc=this.jsonToActionDescriptor(descriptorObj);var parentContext;if(eventId===getEventId) {var ref=desc.getReference(targetKeyId);parentContext=["<class>",getReferenceClassId(ref)];} else {parentContext=["<event>",eventId];} return getFromDescriptor(app.executeAction(eventId,desc,displayDialogs),parentContext);};jamEngine.jsonGet=function(referenceArr) {var ref=this.jsonToActionReference(referenceArr);return getFromDescriptor(app.executeActionGet(ref),["<class>",getReferenceClassId(ref)]);};jamEngine.normalizeJsonItem=function(item,options) {function normalizeItem(item) {var explicit=that.parseCompact(item);var type=explicit[0];var value=explicit[1];var normalizedValue;switch(type) {case"<boolean>":case"<data>":case"<double>":case"<identifier>":case"<index>":case"<integer>":case"<largeInteger>":case"<name>":case"<offset>":case"<path>":case"<string>":normalizedValue=value;break;case"<class>":normalizedValue=value&&getFromId(["<class>",that.uniIdStrToId(value)]);break;case"<enumerated>":var enumerated=that.parseCompact(value);var enumTypeContext=["<enumType>",that.uniIdStrToId(enumerated[0])];var enumValueContext=["<enumValue>",that.uniIdStrToId(enumerated[1])];normalizedValue=that.buildCompact(getFromId(enumTypeContext),getFromId(enumValueContext,enumTypeContext));break;case"<list>":normalizedValue=[];for(var i=0;i<value.length;i++) {normalizedValue.push(normalizeItem(value[i]));} break;case"<object>":var object=that.parseCompact(value);var objectClassContext=["<class>",that.uniIdStrToId(object[0])];var objectDescriptor=object[1];var normalizedDescriptor;if(objectDescriptor===null) {normalizedDescriptor=null;} else {normalizedDescriptor={};for(var key in objectDescriptor) {if(objectDescriptor.hasOwnProperty(key)) {var objectKeyContext=["<key>",that.uniIdStrToId(key)];normalizedDescriptor[getFromId(objectKeyContext,objectClassContext)]=normalizeItem(objectDescriptor[key]);}}} normalizedValue=that.buildCompact(getFromId(objectClassContext),normalizedDescriptor);break;case"<property>":normalizedValue=getFromId(["<key>",that.uniIdStrToId(value)]);break;case"<reference>":normalizedValue=[];for(var i=0;i<value.length;i++) {var container=that.parseCompact(value[i]);normalizedValue.push(that.buildCompact(getFromId(["<class>",that.uniIdStrToId(container[0])]),normalizeItem(container[1])));} break;case"<unitDouble>":var unitDouble=that.parseCompact(value);var unitTypeContext=["<unit>",that.uniIdStrToId(unitDouble[0])];normalizedValue=that.buildCompact(getFromId(unitTypeContext),unitDouble[1]);break;default:throw new Error("[jamEngine.normalizeJsonItem] Unknown item type: "+type);break;} return that.buildCompact(type,normalizedValue);} that=this;var saveMeaningfulIds=this.meaningfulIds;var saveParseFriendly=this.parseFriendly;if(options&&(options.constructor===Object)) {if(typeof options.meaningfulIds!=='undefined') {this.meaningfulIds=options.meaningfulIds;} if(typeof options.parseFriendly!=='undefined') {this.parseFriendly=options.parseFriendly;}} var normalizedItem=normalizeItem(item);this.meaningfulIds=saveMeaningfulIds;this.parseFriendly=saveParseFriendly;return normalizedItem;};function simplifyRef(ref) {var simplifiedRef=[];for(var i=0;i<ref.length;i++) {var element=ref[i];var simplifiedElement={};var desiredClass=element[0];var form=element[1][0];var value=element[1][1];switch(form) {case"<class>":case"<identifier>":case"<index>":case"<name>":case"<offset>":case"<property":simplifiedElement[desiredClass]=value;break;case"<enumerated>":simplifiedElement[desiredClass]=value[1];break;default:throw new Error("[jamEngine simplifyRef] Unexpected element form: "+form);break;} simplifiedRef.push(simplifiedElement);} return simplifiedRef;} function simplifyItem(item,hook) {var simplifiedItem;var type=item[0];var value=item[1];switch(type) {case"<boolean>":case"<class>":case"<data>":case"<double>":case"<integer>":case"<largeInteger>":case"<path>":case"<string>":simplifiedItem=value;break;case"<list>":simplifiedItem=simplifyList(value,hook);break;case"<enumerated>":case"<unitDouble>":simplifiedItem=value[1];break;case"<object>":simplifiedItem=simplifyDesc(value[1],hook);break;case"<reference>":simplifiedItem=simplifyRef(value);break;default:throw new Error("[jamEngine simplifyItem] Unexpected item type: "+type);break;} return simplifiedItem;} function simplifyList(list,hook) {var simplifiedList=[];for(var i=0;i<list.length;i++) {simplifiedList.push(simplifyItem(list[i],hook));} return simplifiedList;} function simplifyDesc(desc,hook) {var getDefaultValue=function(desc,key){return simplifyItem(desc[key],hook);};var simplifiedDesc={};for(var key in desc) {if(desc.hasOwnProperty(key)) {var value=undefined;if(typeof hook==='function') {value=hook(desc,key,getDefaultValue);} if(typeof value==='undefined') {value=simplifyItem(desc[key],hook);} simplifiedDesc[key]=value;}} return simplifiedDesc;} jamEngine.simplifyObject=function(object,hookFunction) {return simplifyDesc((this.normalizeJsonItem(object,{meaningfulIds:true,parseFriendly:true}))[1][1],hookFunction);};jamEngine.simplifyList=function(list,hookFunction) {return simplifyList((this.normalizeJsonItem(list,{meaningfulIds:true,parseFriendly:true}))[1],hookFunction);};jamEngine.parseCompact=function(compact) {var result=[];if(compact.constructor===Object) {var keys=[];for(var k in compact) {if(compact.hasOwnProperty(k)) {keys.push(k);}} if(keys.length===1) {result[0]=keys[0];result[1]=compact[keys[0]];} else {throw new Error("[jamEngine.parseCompact] Syntax error: "+compact.toSource());}} else if(compact.constructor===Array) {if(compact.length===2) {result[0]=compact[0];result[1]=compact[1];} else {throw new Error("[jamEngine.parseCompact] Syntax error: "+compact.toSource());}} else {throw new Error("[jamEngine.parseCompact] JavaScript object or array expected");} return result;};jamEngine.compactToExplicit=function(compact,typeKey,valueKey) {var explicit={};var typeValue=this.parseCompact(compact);explicit[typeKey||"<type>"]=typeValue[0];explicit[valueKey||"<value>"]=typeValue[1];return explicit;};jamEngine.buildCompact=function(type,value) {var compact;if(typeof type==='string') {if(this.parseFriendly) {compact=[type,value];} else {compact={};compact[type]=value;}} else {throw new Error("[jamEngine.buildCompact] String expected");} return compact;};jamEngine.explicitToCompact=function(explicit,typeKey,valueKey) {var compact;if(explicit.constructor===Object) {compact=this.buildCompact(explicit[typeKey||"<type>"],explicit[valueKey||"<value>"]);} else {throw new Error("[jamEngine.explicitToCompact] JavaScript object expected");} return compact;};for(var charIdStr in conflictingStringIdStrs) {if(conflictingStringIdStrs.hasOwnProperty(charIdStr)) {var stringIdStrs=conflictingStringIdStrs[charIdStr];for(var index=stringIdStrs.length-1;index>=0;index--) {var stringIdStr=stringIdStrs[index];if(!(app.charIDToTypeID(charIdStr.substring(1,5))===app.stringIDToTypeID(stringIdStr))) {stringIdStrs.splice(index,1);}} if(stringIdStrs.length<2) {delete conflictingStringIdStrs[charIdStr];}}} for(var charIdStr in contextRules) {if(contextRules.hasOwnProperty(charIdStr)) {if(charIdStr in conflictingStringIdStrs) {var rule=contextRules[charIdStr];for(var kind in rule) {if(rule.hasOwnProperty(kind)) {switch(kind) {case"<class>":case"<event>":case"<enumType>":case"<enumValue>":case"<key>":case"<unknown>":if(app.charIDToTypeID(charIdStr.substring(1,5))!=app.stringIDToTypeID(rule[kind])) {throw new Error("[jamEngine] "+"\""+charIdStr+"\" and \""+rule[kind]+"\" are not equivalent ID strings");} break;case"<classKey>":case"<eventKey>":case"<typeValue>":for(var parent in rule[kind]) {if(rule[kind].hasOwnProperty(parent)) {if(app.charIDToTypeID(charIdStr.substring(1,5))!=app.stringIDToTypeID(rule[kind][parent])) {throw new Error("[jamEngine] "+"\""+charIdStr+"\" and \""+rule[kind][parent]+"\" are not equivalent ID strings");}}} break;}}}} else {delete contextRules[charIdStr];}}}}());}jamEngine.meaningfulIds = true;
jamEngine.parseFriendly = true;// Action “Create Luminosity Masks”
try
{// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<reference>",[["channel",["<enumerated>",["channel","RGB"]]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Brights 1"]},DialogModes.NO);}// Selectif (true){jamEngine.jsonPlay("select",{"target":["<reference>",[["channel",["<name>","Brights 1"]]]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","none"]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]]},DialogModes.NO);}// Intersectif (true){jamEngine.jsonPlay("intersect",{"target":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]],"with":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Brights 2"]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","none"]]},DialogModes.NO);}// Selectif (true){jamEngine.jsonPlay("select",{"target":["<reference>",[["channel",["<name>","Brights 2"]]]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]]},DialogModes.NO);}// Intersectif (true){jamEngine.jsonPlay("intersect",{"target":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]],"with":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Brights 3"]},DialogModes.NO);}// Selectif (true){jamEngine.jsonPlay("select",{"target":["<reference>",[["channel",["<name>","Brights 3"]]]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","none"]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]]},DialogModes.NO);}// Intersectif (true){jamEngine.jsonPlay("intersect",{"target":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]],"with":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Brights 4"]},DialogModes.NO);}// Selectif (true){jamEngine.jsonPlay("select",{"target":["<reference>",[["channel",["<name>","Brights 4"]]]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","none"]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]]},DialogModes.NO);}// Intersectif (true){jamEngine.jsonPlay("intersect",{"target":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]],"with":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Brights 5"]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","none"]]},DialogModes.NO);}// Selectif (true){jamEngine.jsonPlay("select",{"target":["<reference>",[["channel",["<name>","Brights 5"]]]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]]},DialogModes.NO);}// Intersectif (true){jamEngine.jsonPlay("intersect",{"target":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]],"with":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Brights 6"]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","none"]]},DialogModes.NO);}// Selectif (true){jamEngine.jsonPlay("select",{"target":["<reference>",[["channel",["<name>","Brights 6"]]]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<reference>",[["channel",["<enumerated>",["channel","RGB"]]]]]},DialogModes.NO);}// Inverseif (true){jamEngine.jsonPlay("inverse",null,DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Darks 1"]},DialogModes.NO);}// Selectif (true){jamEngine.jsonPlay("select",{"target":["<reference>",[["channel",["<name>","Darks 1"]]]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","none"]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]]},DialogModes.NO);}// Intersectif (true){jamEngine.jsonPlay("intersect",{"target":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]],"with":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Darks 2"]},DialogModes.NO);}// Selectif (true){jamEngine.jsonPlay("select",{"target":["<reference>",[["channel",["<name>","Darks 2"]]]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","none"]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]]},DialogModes.NO);}// Intersectif (true){jamEngine.jsonPlay("intersect",{"target":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]],"with":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Darks 3"]},DialogModes.NO);}// Selectif (true){jamEngine.jsonPlay("select",{"target":["<reference>",[["channel",["<name>","Darks 3"]]]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","none"]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]]},DialogModes.NO);}// Intersectif (true){jamEngine.jsonPlay("intersect",{"target":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]],"with":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Darks 4"]},DialogModes.NO);}// Selectif (true){jamEngine.jsonPlay("select",{"target":["<reference>",[["channel",["<name>","Darks 4"]]]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","none"]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]]},DialogModes.NO);}// Intersectif (true){jamEngine.jsonPlay("intersect",{"target":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]],"with":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Darks 5"]},DialogModes.NO);}// Selectif (true){jamEngine.jsonPlay("select",{"target":["<reference>",[["channel",["<name>","Darks 5"]]]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","none"]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]]},DialogModes.NO);}// Intersectif (true){jamEngine.jsonPlay("intersect",{"target":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]],"with":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Darks 6"]},DialogModes.NO);}// Selectif (true){jamEngine.jsonPlay("select",{"target":["<reference>",[["channel",["<name>","Darks 6"]]]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","none"]]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","allEnum"]]},DialogModes.NO);}// Subtractif (true){jamEngine.jsonPlay("subtract",{"target":["<reference>",[["channel",["<name>","Brights 1"]]]],"from":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Subtractif (true){jamEngine.jsonPlay("subtract",{"target":["<reference>",[["channel",["<name>","Darks 1"]]]],"from":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Midtones 1"]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","allEnum"]]},DialogModes.NO);}// Subtractif (true){jamEngine.jsonPlay("subtract",{"target":["<reference>",[["channel",["<name>","Brights 2"]]]],"from":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Subtractif (true){jamEngine.jsonPlay("subtract",{"target":["<reference>",[["channel",["<name>","Darks 2"]]]],"from":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Midtones 2"]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","allEnum"]]},DialogModes.NO);}// Subtractif (true){jamEngine.jsonPlay("subtract",{"target":["<reference>",[["channel",["<name>","Brights 3"]]]],"from":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Subtractif (true){jamEngine.jsonPlay("subtract",{"target":["<reference>",[["channel",["<name>","Darks 3"]]]],"from":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Midtones 3"]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","allEnum"]]},DialogModes.NO);}// Subtractif (true){jamEngine.jsonPlay("subtract",{"target":["<reference>",[["channel",["<name>","Brights 4"]]]],"from":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Subtractif (true){jamEngine.jsonPlay("subtract",{"target":["<reference>",[["channel",["<name>","Darks 4"]]]],"from":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Midtones 4"]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","allEnum"]]},DialogModes.NO);}// Subtractif (true){jamEngine.jsonPlay("subtract",{"target":["<reference>",[["channel",["<name>","Brights 5"]]]],"from":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Subtractif (true){jamEngine.jsonPlay("subtract",{"target":["<reference>",[["channel",["<name>","Darks 5"]]]],"from":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Midtones 5"]},DialogModes.NO);}// Setif (true){jamEngine.jsonPlay("set",{"target":["<reference>",[["channel",["<property>","selection"]]]],"to":["<enumerated>",["ordinal","allEnum"]]},DialogModes.NO);}// Subtractif (true){jamEngine.jsonPlay("subtract",{"target":["<reference>",[["channel",["<name>","Brights 6"]]]],"from":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Subtractif (true){jamEngine.jsonPlay("subtract",{"target":["<reference>",[["channel",["<enumerated>",["ordinal","targetEnum"]]]]],"from":["<reference>",[["channel",["<property>","selection"]]]]},DialogModes.NO);}// Duplicateif (true){jamEngine.jsonPlay("duplicate",{"target":["<reference>",[["channel",["<property>","selection"]]]],"name":["<string>","Midtones 6"]},DialogModes.NO);}// Selectif (true){jamEngine.jsonPlay("select",{"target":["<reference>",[["channel",["<enumerated>",["channel","RGB"]]]]]},DialogModes.NO);}
}
catch (e)
{if (e.number !== 8007)  // Not a user cancel error{try{jamEngine.jsonPlay("stop",{"message":["<string>",e.message.replace (/^.*\n- /, "")]},DialogModes.ALL);}catch (e){}}
}

3.代码转执行

  使用记事本或者notepad++等文本编辑器,将代码拷贝至文本文件,然后修改后缀名为js或者jsx,最后再PS软件菜单文件》脚本》浏览,点执行即可,也可以将脚本放在预设文件夹内,会显示再脚本下的二级子菜单。如下图所示:

4.作者答疑


  如有疑问,请留言。

Photoshop插件-创建所有亮度通道蒙板-脚本开发-PS插件相关推荐

  1. Photoshop插件-全部色彩校正-脚本开发-PS插件

    文章目录 1.插件界面 2.关键代码--全部色彩校正 3.代码转执行 4.作者答疑   PS是一款栅格图像编辑软件,模块众多.提供了脚本,动态连接库等多种扩展机制,本文演示如何通过脚本实现全部色彩校正 ...

  2. Photoshop插件--证件照--1寸裁剪--1寸排版--脚本开发--PS插件

    文章目录 1.插件界面 2.关键代码 2.1.1寸裁剪 2.2.1寸排版   PS是一款栅格图像编辑软件,具有许多强大的功能,可以制作证件照,本文演示如何通过脚本实现1寸裁剪和1寸排版功能相关功能,展 ...

  3. Photoshop插件-保存-8位通道-16位通道-脚本开发-PS插件

    文章目录 1.插件界面 2.关键代码 2.1.8位通道 2.2.16位通道 3.代码转执行 4.作者答疑   PS是一款栅格图像编辑软件,具有许多强大的功能,本文演示如何通过脚本实现8位通道和16位通 ...

  4. Photoshop插件-锐化-多重调整锐化 (Web)-脚本开发-PS插件

    文章目录 1.插件界面 2.关键代码 3.代码转执行 4.作者答疑   PS是一款栅格图像编辑软件,模块众多.提供了脚本,动态连接库等多种扩展机制,本文演示如何通过脚本实现多重调整锐化 (Web)相关 ...

  5. Photoshop插件-秋色效果-脚本开发-PS插件

    文章目录 1.插件界面 2.关键代码-秋色效果 3.作者答疑   PS是一款栅格图像编辑软件,具有许多强大的功能,本文演示如何通过脚本实现秋色效果相关功能,展示从互联网收集而来的一个小插件,供大家学习 ...

  6. Photoshop插件-色彩混合模式-盖印-删除-脚本开发-PS插件

    文章目录 1.插件界面 2.关键代码 2.1 色彩混合模式 2.2 盖印 2.3 删除 3.代码转执行 4.作者答疑   PS是一款栅格图像编辑软件,模块众多.提供了脚本,动态连接库等多种扩展机制,本 ...

  7. Photoshop插件-锐化-高反差保留-脚本开发-PS插件

    文章目录 1.插件界面 2.关键代码 3.代码转执行 4.作者答疑   PS是一款栅格图像编辑软件,模块众多.提供了脚本,动态连接库等多种扩展机制,本文演示如何通过脚本实现高反差保留相关功能,展示从互 ...

  8. Photoshop插件-锐化-高反差保留仅边缘-脚本开发-PS插件

    文章目录 1.插件界面 2.关键代码 3.代码转执行 4.作者答疑   PS是一款栅格图像编辑软件,模块众多.提供了脚本,动态连接库等多种扩展机制,本文演示如何通过脚本实现高反差保留仅边缘相关功能,展 ...

  9. Photoshop插件-修复高光-脚本开发-PS插件

    文章目录 1.插件界面 2.关键代码-修复高光 3.代码转执行 4.作者答疑   PS是一款栅格图像编辑软件,模块众多.提供了脚本,动态连接库等多种扩展机制,本文演示如何通过脚本实现修复高光相关功能, ...

  10. Photoshop插件--新建文档--嵌入智能对象--复制图像--脚本开发--PS插件

    文章目录 1.插件界面 2.关键代码 2.1新建文档 2.2嵌入智能对象 2.3复制图像 3.作者寄语   PS是一款栅格图像编辑软件,具有许多强大的功能,本文演示如何通过脚本新建文档,嵌入智能对象和 ...

最新文章

  1. c++有哪四个类型转换相关的关键字
  2. OS_CORE.C(11)
  3. python 发送邮件正文字体设置_python 文字 坐标python smtplib模块发送SSL/TLS安全邮件实例...
  4. Any problem in computer science can be solved with another layer of indirection
  5. en_core_web_sm下载
  6. 三面美团Java岗,java架构师线下培训
  7. ORACLE 如何产生一个随机数
  8. group by后可以join吗_去韩国留学毕业后可以留在韩国吗
  9. Android Scroller类的详细分析
  10. java 范型 隐式 显式_隐式与显式接口实现
  11. 关于webuploader 在ie9上不能触发 input 的 change 事件
  12. Mysql SQLyog 使用详解
  13. iBatis.Net系列(五)-providers.config-
  14. 浅谈设备驱动的作用与本质,有无操作系统Linux设备驱动的区别
  15. 前端 flex: 1; 到底是什么意思?
  16. 【Books系列】之第一本书:大冰《好吗好的》读书笔记和读后感
  17. Nuendo学习之旅——音程和和弦
  18. android手机文件快速扫描,并归类
  19. 织梦后台发布文章编辑器不显示的解决办法
  20. 正则匹配 正则表达式在线工具

热门文章

  1. lua luarocks_通过Luarocks使Lua开发变得容易
  2. IOCCC.1987.korn.c.解析
  3. SPSS软件做方差分析
  4. PHP视频教程源码书籍web前端ThinkPHP5/5.0商城实战开发html5秒杀
  5. 人口模型(Malthus+Logistic)
  6. 光载无线(RoF, Radio over Fiber)通信技术
  7. python 图标字体_使用nerd-font/font-patcher为字体添加字体图标
  8. Rational ClearCase批量merge合并
  9. 【财政决策支持系统DSS】财政支出OLAP分析模型参考【财政数据仓库DW】
  10. 高频电子线路实验 03 - | 环形混频与直接调频