Photoshop插件-晕影动态-选区-脚本开发-PS插件
文章目录
- 1.插件界面
- 2.关键代码
- 2.1 选区
- 2.2 动态晕影
- 3.代码转执行
- 4.作者答疑
PS是一款栅格图像编辑软件,模块众多。提供了脚本,动态连接库等多种扩展机制,本文演示如何通过脚本实现晕影动态和选区相关功能,展示从互联网收集而来的一个小插件,供大家学习交流,请勿用于商业用途。
1.插件界面
本文界面是一系列功能的一部分,将逐步展示,但是功能界面是共同的,如下图所示:

2.关键代码
2.1 选区
大家可通过源代码阅读,来掌握相关技巧,源代码如下:
var idslct = charIDToTypeID("slct");
var desc18 = new ActionDescriptor();
var idnull = charIDToTypeID("null");
var ref15 = new ActionReference();
var idmarqueeEllipTool = stringIDToTypeID("marqueeEllipTool");
ref15.putClass(idmarqueeEllipTool);
desc18.putReference(idnull, ref15);
var iddontRecord = stringIDToTypeID("dontRecord");
desc18.putBoolean(iddontRecord, true);
var idforceNotify = stringIDToTypeID("forceNotify");
desc18.putBoolean(idforceNotify, true);
executeAction(idslct, desc18, DialogModes.NO);
2.2 动态晕影
大家可通过源代码阅读,来掌握相关技巧,源代码如下:
win = new Window("dialog", "动态不透明度");
win.orientation = "column";
leftGr = win.add("group");
baton10 = leftGr.add("group");
leftGr.orientation = "column";
sliderGroup26 = leftGr.add("group");
sliderGroup26.orientation = "row";
sliderGroup26.alignChildren = ["fill", "fill"];
slTxt = sliderGroup26.add("staticText", undefined, "0");
slider6 = sliderGroup26.add("slider", undefined, 50, 0, 100);
slider6.preferredSize.width = 240;
sliderValue6 = sliderGroup26.add("statictext", undefined, " 50 ");
slider6.onChanging = function() {sliderValue6.text = Math.round(this.value);
};
slider6.onChange = function() {foo66 = Math.round(this.value);var idslct = charIDToTypeID("slct");var desc37 = new ActionDescriptor();var idnull = charIDToTypeID("null");var ref16 = new ActionReference();var idLyr = charIDToTypeID("Lyr ");ref16.putName(idLyr, "Vignette");desc37.putReference(idnull, ref16);var idMkVs = charIDToTypeID("MkVs");desc37.putBoolean(idMkVs, false);executeAction(idslct, desc37, DialogModes.NO);var idsetd = charIDToTypeID("setd");var desc18 = new ActionDescriptor();var idnull = charIDToTypeID("null");var ref10 = new ActionReference();var idLyr = charIDToTypeID("Lyr ");var idOrdn = charIDToTypeID("Ordn");var idTrgt = charIDToTypeID("Trgt");ref10.putEnumerated(idLyr, idOrdn, idTrgt);desc18.putReference(idnull, ref10);var idT = charIDToTypeID("T ");var desc19 = new ActionDescriptor();var idOpct = charIDToTypeID("Opct");var idPrc = charIDToTypeID("#Prc");desc19.putUnitDouble(idOpct, idPrc, foo66);var idLyr = charIDToTypeID("Lyr ");desc18.putObject(idT, idLyr, desc19);executeAction(idsetd, desc18, DialogModes.NO);app.refresh();
};
closeBtn = leftGr.add("button", undefined, "关闭");
closeBtn.preferredSize.width = 270;
close = false;
closeBtn.onClick = function() {close = true;win.close();
};
win.onClose = function() {close = true;
};
win.show();
while (close === false) {app.refresh();
}
3.代码转执行
使用记事本或者notepad++等文本编辑器,将代码拷贝至文本文件,然后修改后缀名为js或者jsx,最后再PS软件菜单文件》脚本》浏览,点执行即可,也可以将脚本放在预设文件夹内,会显示再脚本下的二级子菜单。如下图所示:

4.作者答疑
如有疑问,请留言。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
