PS脚本(PhotoShop Scripting)是图像处理软件Adobe Photoshop所支持的批处理程序。现在PS应用之广泛,可以说已成为OFFICE软件,很多人不同程度的都会使用PS,但其中大多数人对于PS脚本应该甚少接触甚至不知道其存在,很多人将其与PS动作(Action)混淆,其实这两者是完全不同的。下面,我们以一个简单的实例来介绍下PS脚本。
假设这样一种情况:需要将N张照片批量设置大小供屏幕分辨率为宽208pixel×高320pixel的某型号手机使用。很多人都会想到录制PS动作(Action)进行批处理,但如果这N张照片宽高比例不一样,且需要显示全图,就会发现PS动作无法满足需求:把宽度设置为208,有些比例的图片高度就会大于320而有部分超出屏幕,同样,去设置高度也会有此问题。PS动作可以录制动作对图片进行批处理来代替大量的手动操作,但其智能化程度较低,这时,我们可以用到PS脚本来解决问题。
PS脚本支持三种script:Visual Basic (Windows) 、Applescript (Mac OS) 和Javascript (跨平台),这里我们选择Javascript来编写指令,一来它可以跨平台,二来它也是在其他编程领域相对涉及多的一种script。
脚本编写思路:
先设置宽度等于208,如果此时图片对应高度小于或等于320,满足条件;如果此时高度大于320,则不满足条件,此时就设置高度为320,按照比例此时宽度一定是小于208的。
具体代码:
if (app.documents.length == 0)
{
var pic = app.documents.add();
}
else
{
var pic = app.activeDocument;
}
//如果PS中不存在图片则新建文档;否则就声明对象。
var pic_w = 208; //定义标准宽度
var pic_h = 320; //定义标准高度
var PRESOLUTION = 72; //定义图象分辨率
var h = pic.height; //获取实际图片高度
var w = pic.width; //获取实际图片宽度
if (h / w > pic_w / pic_h){
var set_h = pic_h;
var set_w = w * pic_h / h;
}
else{
var set_w = pic_w;
var set_h = h * pic_w / w;
}
//如果图片高/宽大于标准比例,说明设置宽度为标准宽度后,高度会超出标准宽度,此时只能以设置高度为标准缩小图片;否则,以设置宽度为标准缩小图片。
pic.resizeImage( set_w, set_h, PRESOLUTION, ResampleMethod.BICUBIC); //对图片进行尺寸处理
pic.activeLayer.applyUnSharpMask(200, 0.3, 0); //锐利化,降低图片因尺寸缩小形成的模糊度
使用脚本:
将以上代码存为后缀为.js或.jsx的文件,文件名任取。各版本使用脚本有所不同,如photoshop cs4的使用步骤是:
1、选取"文件">"脚本">"脚本事件管理器"。
2、选择"启用事件以运行脚本/动作"。
3、在 Photoshop"事件"菜单中,选取将触发脚本或动作的事件。
4、选择"脚本"或"动作",然后选取在事件发生时运行的脚本或动作。
Photoshop 有多个示例脚本可供选取。要运行其它脚本,请选取"浏览",然后浏览到该脚本。对于动作,请从第一个弹出式菜单中选取动作组,然后从第二个菜单中选取该组中的动作。必须在"动作"面板中载入动作后,它才会出现在这些菜单中。
5、单击"添加"。对话框中列出了事件和它关联的脚本或动作。
6、要停用和移去个别事件,请在列表中选择事件,然后单击"移去"。要停用所有事件,但仍将它们保留在列表中,请取消选择"启用事件以运行脚本/动作"。
大家可根据各自版本到网上自行搜索相关资料,这里不一一列举。
结束语:
以上只是PS脚本应用的一个很简单的例子,photoshop scripting还有其他很多很强大的实用功能,有兴趣的朋友可以参考photoshop程序目录里的pdf英文教程和sample,如果英文欠佳,可到网上搜索相关中文教程。 |