前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PhotoShop脚本入门实例

PhotoShop脚本入门实例

作者头像
怪兽
发布2022-10-04 15:30:31
1K0
发布2022-10-04 15:30:31
举报
文章被收录于专栏:怪兽怪秀

PhotoShop版本:Photoshop CC 2020 低版本可能会影响对象定义


一、脚本的使用

1.HelloWolrd 走起

代码语言:javascript
复制
---->[Hello.js]-----------------
Alert("Hello World");

##二、从面向对象的角度来看PhotoShop ###0.对象:app

将整个app看做一个对象,它拥有着众多的方法和属性,以此可以获取信息和操作图片 先来看一下app对象中的几个对象,找点感觉

app {//整个PS软件对象 name,//软件名称version,//软件版本 documents:{},//打开的文件的信息 fonts:{}//系统字体 recentFiles:{},//所有的打开文档对象(数组) activeDocument:{}//当前激活的文档对象 }

代码语言:javascript
复制
app {//整个PS软件对象
    name,//软件名称
    version,//软件版本
    documents:{},//打开的文件的信息
    fonts:{}//系统字体
    recentFiles:{},//所有的打开文档对象(数组)
    activeDocument:{}//当前激活的文档对象
}

###1.获取名称和版本号+操作提示音:app.beep()

代码语言:javascript
复制
---->[info.js]-----------------
var msg = app.name + "\r\n 版本:" + app.version;
alert(msg);
app.beep() //执行播放提示音效果:叮咚

###2.打开的文件的信息:app.documents

代码语言:javascript
复制
var docs = app.documents;
var msg = "";

for (var i = 0; i < docs.length; i++) {
    msg +=
        "名称:" + docs[i].name + "\r\n" +
        "宽/像素:" + docs[i].width + "\r\n" +
        "高/像素:" + docs[i].height + "\r\n";
}
alert(msg);

###3.列出字体:app.fonts

代码语言:javascript
复制
var fonts = app.fonts;
var msg = "";

for (var i = 0; i < fonts.length; i++) {
    msg += "序号:" + (i + 1) + "  字体:" + fonts[i].name + "\r\n";
}
alert(msg);

###4.最近打开的文件:app.recentFiles

代码语言:javascript
复制
var cFiles = app.recentFiles;
var msg = "";
for (var i = 0; i < cFiles.length; i++) {
    msg += (i + 1) + ":" + cFiles[i].name + "\r\n";
}
alert(msg);

###5.当前激活的文档对象:app.activeDocument

代码语言:javascript
复制
var doc = app.activeDocument;
msg = "名称:" + doc.name + "\r\n" +
    "宽/像素:" + doc.width + "\r\n" +
    "高/像素:" + doc.height + "\r\n";
alert(msg);

##三、文件操作相关 1.打开图片:open(File)

代码语言:javascript
复制
var img = File("J:\\Java\\Android\\TolyGithub\\TolyTest\\toly_test\\src\\main\\res\\mipmap-xxhdpi\\bg_10.jpg");
var ok = confirm("打开图片?");
if (ok) {
    open(img)
}

###2.打开文件夹下所有图片

代码语言:javascript
复制
var imgFolder = File("J:\\Java\\Android\\TolyGithub\\TolyTest\\toly_test\\src\\main\\res\\mipmap-xxhdpi");
var files = imgFolder.getFiles();
for (var i = 0; i <files.length; i++) {
    var file = files[i];
    if (file instanceof File) {
        open(file);
    }
}

###3.拷贝当前文档并打开

代码语言:javascript
复制
var doc = app.activeDocument;//当前文件对象
doc.duplicate(app.activeDocument.name + "-copy", 1);//拷贝当前文档并打开

###4.文件另存为:app.activeDocument.saveAs

代码语言:javascript
复制
var doc = app.activeDocument;//当前文件对象
var outPath = new File("G:\\Photo\\龙少.png");
var options = PNGSaveOptions;//保存png模式
var asCopy = true;//副本方式保存
var extensionType = Extension.LOWERCASE;//拓展名小写
doc.saveAs(outPath, options, asCopy, extensionType);
alert("保存完成")

###5.压缩并保存图片(web) > 直接保存的png 有11.1M, web导出的0.3k,虽然效果上有些失色,还是很有价值的。

代码语言:javascript
复制
//压缩保存gif
var doc = app.activeDocument;//当前文件对象
var path = new File("G:\\Photo\\龙少.gif");
var eop = new ExportOptionsSaveForWeb();//web图片导出配置
eop.transparecy = false;//是否正常透明度
eop.includeProfile = true;//是否包含内置颜色配置文件
eop.lossy = 0;//有损压缩程度
eop.colors = 256;//色彩量
eop.colorReduction = ColorReductionType.SELECTIVE;////减低颜色深度算法:可选择
eop.formate = SaveDocumentType.COMPUSERVEGIF;//导出格式FIF
eop.ditherAmount = 0;//像素抖动值
eop.dither = Dither.NOISE;//杂色
eop.palette = Palette.LOCALADAPTIVE;//局部(随样性)
doc.exportDocument(path, ExportType.SAVEFORWEB, eop);
alert("保存完成:" + path);

//压缩保存jpeg
var doc = app.activeDocument;//当前文件对象
var filePath = new File("G:\\Photo\\龙少.jpeg");
var eop = new ExportOptionsSaveForWeb();//web图片导出配置
eop.quality = 60;//图片质量
doc.exportDocument(filePath, ExportType.SAVEFORWEB, eop);
alert("保存完成:" + filePath);

//压缩保存png
var doc = app.activeDocument;//当前文件对象
var filePath = new File("G:\\Photo\\龙少-compressed.png");
var eop = new ExportOptionsSaveForWeb();//web图片导出配置
eop.PNG8 = true;//png 8彩
doc.exportDocument(filePath, ExportType.SAVEFORWEB, eop);
alert("保存完成:" + filePath);

##四、一些简单操作 ###1.创建新文件

代码语言:javascript
复制
//创建新文件
var width = 1080;//宽
var height = 1920;//高
var resolution=72;//分辨率
var fileName="phone";//名称
var mode = NewDocumentMode.RGB;//色彩模式
var fillColor = DocumentFill.TRANSPARENT;//背景填充颜色
var pixelAspectRatio=1;//像素比率
app.documents.add(width, height, resolution, fileName, mode, fillColor, pixelAspectRatio);

###2.添加文字图层

代码语言:javascript
复制
//创建文字图层
var doc = app.documents.add(500, 200);
var artLayer = doc.artLayers.add();
artLayer.kind = LayerKind.TEXT;

var textItem = artLayer.textItem;//文字条目
textItem.contents = "张风捷特烈";//文字内容
textItem.size = 40;
artLayer.translate(0, 100);

###3.获取当前文件的所有图层

代码语言:javascript
复制
//获取图层对象
var layers = app.activeDocument.artLayers;
var msg = "";
for (var i = 0; i < layers.length; i++) {
    var layer = layers[i];
    msg += i + "--图层名称:" + layer.name + "\r\n";
}
alert(msg);

###4.获取图层尺寸

代码语言:javascript
复制
var layer = app.activeDocument.activeLayer;//活动图层
alert(layer.bounds);

###5.当前激活图层:色彩平衡

代码语言:javascript
复制
var layer = app.activeDocument.activeLayer;//活动图层
layer.adjustColorBalance([-39,-81,0], [-44,50,-52], [0,0,0], true);//阴影、中间调、高光

###6.前景色和背景色的修改

代码语言:javascript
复制
var ok = confirm("是否随机设置前景色和背景色?");
if (ok) {
    //前景色
    app.foregroundColor.rgb.red = Math.random() * 255;
    app.foregroundColor.rgb.green = Math.random() * 255;
    app.foregroundColor.rgb.blue = Math.random() * 255;
    //背景色
    app.backgroundColor.rgb.red = Math.random() * 255;
    app.backgroundColor.rgb.green = Math.random() * 255;
    app.backgroundColor.rgb.blue = Math.random() * 255;
}

> 更多实例可以访问http://www.coolketang.com/psscript/menu1lesson3.php > 更对对象可以访问http://nullice.com/archives/1790#i

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档