Photoshop插件-晕影动态-选区-脚本开发-PS插件

boyanx5个月前技术教程11

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.作者答疑


文章引用至 作者联系方式

文章引用至 插件开发流程 - 知乎

标签: slider.js

相关文章

超详细带你从入门开始,开发一个超实用的浏览器插件

相信大家平时在电脑上逛掘金、知乎网站时,肯定有看到过下面超级烦人的跳转拦截确认页面虽然这种拦截的初衷是好的,但是我相信大家平时肯定不会因为有了这个拦截提醒页面,就会对即将打开的网站安全性提高自己的警惕...

基于 vue2/3 可视化拖拽编辑ASEditor

今天给大家分享一个vue.js支持移动端的可视化拖拽模板AsEditor。as-editor 使用vue2/3开发的可视化拖拽,可集成至移动端项目作为通过定义 JSON 直接生成 UI 界面。git...

只需5分钟!教你快速上手Weex(只需5分钟!莲都进入换证高峰,赶快试一下这个)

关于Weex的介绍已经毋须多言,今天,我们带给大家的是如何快速上手Weex。我们以实例的方式呈现给大家,使用Weex编写一个简单的列表,这样的列表经常能在电商类移动应用中见到。开始我们先编写一个列表项...

Qt开源作品5-仪表盘交互(qt 图表控件)

## 一、前言Echart是百度研发团队开发的一款报表视图JS插件,功能十分强大,是本人用过的国产作品中最牛逼的,记得四五年前就在qt中使用过,当时用的浏览器控件是webkit,由于5.6以后的版本不...

微场景快速搭建方案:触景js发布1.3版本

切图触景JS发布,新增了手指触摸的刮刮卡效果组件QietuSwiperMask,放弃了对原生jQuery.mobile改造的swipeup,swipedown函数,采用了开源的触摸插件jquery.t...

后端接活儿利器:基于Vue,拖拽一键生成UI界面,简洁漂亮已开源

简介基于vue可视化拖拽编辑,页面生成工具。提升前端开发效率,可集成至移动端项目作为通过定义 JSON 直接生成 UI 界面。安装教程npm install (安装 node_modules 模块)n...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。