PS脚本教程

今日学习内容

  • PS 脚本,实现自动更改文本内容和图片,并导出 png 图片

    ps 的内置脚本语言是 ExtendScript,遵循 ECMAScript 规范,和 js 很像,会 js 的上手很快

文末有简单的小例子

PS 脚本

前期准备

  • 下载脚本编辑器 Adobe ExtendScript Toolkit CC(简称 ESTK,直接搜名字下载即可,在 github 上开源)
  • 下载 PS 任意版本(最好是 18 年之后的版本,具体支持版本可查阅脚本编辑器的)

打开 ps 和 ESTK

打开之后效果如下图所示,选择对应版本和软件,若工作指示标记是绿色的锁链则表示连接成功,可以开始编写脚本了

在这里插入图片描述

ES 基本语法

整体语法和 js 类似,但是集成了一些操作 adobe 软件的函数

新建文档:

#target photoshop //
app.bringToFront()

// 定义文档的宽和高
var width = 10 // 目前ps的默认标尺宽度为像素px
var height = 10
// 定义文档分辨率
var resolution = 72
// 定义文档的名字
var name = "我的文档test"
// 定义文档的模式
var mode = NewDocumentMode.RGB
// 定义文档的初始化填充
var initialFill = DocumentFill.WHITE
var pixelAspectRatio = 1
var bitsPerChannel = BitsPerChannelType.EIGHT

// 新建文档的命令,这些参数其实都可以缺省,直接一个app.documents.add()怼上去就能新建文档
app.documents.add (width, height, resolution, name, mode, initialFill, pixelAspectRatio, bitsPerChannel)

for 循环

// 定义一个数组
ll = [1,2,3,4,5]
// for循环,l从0开始一直循环到数组中所含元素个数
for (var l = 0; l<ll.length;l++){
        $.write(ll[l]) // ES中使用$.write()代替console.log在控制台中打印
     }

遍历字典

childdict = {"apple":"苹果","pen":"钢笔","coin":"硬币"}
for (var key in childdict){
	value = childdict[key]
	alert(key+"的中文是:"+value)
	}

常用操作

// 警报消息
alert("输出")

// 打开文件
var filepath =new File("C:\\文件夹\\子文件夹\\文件.psd") // 括号里换成自己的文件地址
app.open(filepath) // 打开文件到ps中

// 获取窗口句柄
var doc = app.activeDocument // 获取当前活动目录的句柄

// 执行ps中提前预设的动作
app.doAction("更新","更新") // 此处的更新为ps中的动作名称,需提前在软件中设置

// 导出png图片文件
// 设置导出参数
    var options = new ExportOptionsSaveForWeb();
    options.format = SaveDocumentType.PNG; // 选择导出格式,可以是其他格式如JPEG、GIF等
    options.PNG8 = false; // 如果选择PNG格式,设置是否为PNG-8

    // 设置导出路径
    var exportFolder = new Folder("C:\\文件夹\\子文件夹"); // 替换为你的导出文件夹路径
    var exportFile = new File(exportFolder + "\\" + "output.png"); // 替换为导出文件的名称和格式

    // 导出图片
    doc.exportDocument(exportFile, ExportType.SAVEFORWEB, options);
    doc.save()
    doc.close()

完整代码为

脚本说明:读取psd文件,该文件中含有名为text的文本图层。脚本功能为更改文字并输出图片

#target photoshop

// 设定变量
const textList = ["替换文本1","替换文本2","替换文本3"]
// 工作目录
const workFile = "C:\\Users\\xiezeyu\\Desktop\\未标题-2.psd";
 

// 更改文字图层代码,输入图层名字和修改内容
function changeText(name, text){
    var target = app.activeDocument.artLayers.getByName(name)
    if(target){
         target.textItem.contents = text
    }
    return "success"
}

// *******************主程序开始******************
var filepath =new File(workFile)
app.open(filepath)
var doc = app.activeDocument // 获取当前活动目录的句柄
// 设置导出参数
var options = new ExportOptionsSaveForWeb();
options.format = SaveDocumentType.PNG; // 选择导出格式,可以是其他格式如JPEG、GIF等
options.PNG8 = false; // 如果选择PNG格式,设置是否为PNG-8

// 更换内容
for (txt in textList){
    var content = textList[txt]
	changeText("text",content) // 前面的"tex"是图层的名字,后一个txt是要替换的内容
	
    // 设置导出路径和导出文件名
    var exportFolder = new Folder("C:\\Users\\xiezeyu\\Desktop"); // 替换为你的导出文件夹路径
    var exportFile = new File(exportFolder + "\\" + txt +".png"); // 替换为导出文件的名称和格式
    // 导出图片
    doc.exportDocument(exportFile, ExportType.SAVEFORWEB, options);
    }
// doc.save() // 保存当前内容,若需要保存文件可取消注释
doc.close()
alert("全部运行完成")
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值