kftianji 发表于 2019-1-29 17:19

PS脚本小记(1)

本帖最后由 kftianji 于 2019-2-15 03:25 编辑

photoshop脚本的保留字符说明可在度娘搜索:ps脚本 属性与事件      
另转载《Adobe CEP 扩展开发教程 「 6 」 Photoshop 中文脚本参考》部分翻译内容
------------------photoshop平面设计软件自带脚本功能,在这就把比别人的知识,自己的理解糅杂在一起丢在这里以供大家一笑。本人超级业余,以下所讲内容,不如说以下所提问题。
photoshop支持的脚本语言有:AS,javascript,vbscript,VB等。
以下用jiavascript为例子用Adobe自带的ExtendScript Toolkit.exe调试。亦可以直接用.txt文档编辑,改后缀为.jsx直接用photoshop运行。

photoshop运行脚本的方法是:菜单拦[文件]--[脚本]---[浏览]---加载脚本即可。
为了方便设置个快捷键:菜单栏[编辑]--[键盘快捷键...]--打开[▲文件]--下拉找到[浏览...]点击--设置为F1       (F1万年无用的 快捷键,替换后效果显著,也可以用别的快捷键替换)。

以下简单的用文档编辑改后缀方式:
文件1:弹出对话框显示“提示窗文字若干”

alert("提示窗文字若干")


语句用法:


文件2:c++的语法完全够用,这里纯粹为了测试if和for是否为可用语法

var docs=app.documents.length//读取当前已打开文档总数
if(docs<1)
{
for(var i=0;i<2;i++){
testtwo()}}//弹出两次提示框
else
testone()

function testone(){
alert(docs)
}

function testtwo(){
alert("未有文件打开");
}



文件3:这个脚本功能是把打开的所有文件转存为jpg格式存在f:\temp\文件夹下

var thisdoc="F:\\temp\\jpg\\"
var asCopy=true                                                       //以副本方式保存
var extensionType=Extension.LOWERCASE            //定义后缀为小写格式
var document
var docname
var fileOut
var ooptions


var docnumber=app.documents.length               //获取当前文档数量

for(var i=0;i<docnumber;i++)
{
savedoc()
}

function savedoc(){
document=app.activeDocument                      //当前文档
docname=document.name                           //文件名称
fileOut=new File(thisdoc+docname)            //保存路径
options=new JPEGSaveOptions()                   //保存格式
options.embedColoProfile=true                   //嵌入色彩配置文件
options.formatOptions = FormatOptions.STANDARDBASELINE         //格式选项=基线(“标准”)
options.matte=MatteType.NONE               //索引颜色--杂边=缺省
options.quality=12                                       //文档品质=最高
document.close(document.saveAs(fileOut,options,asCopy,extensionType))         //执行语句

}
//new Folder("D:/priceCard/result").create ()//创建文件夹



文件4:仍然是转格式,转为psd并新建一空白图层

var thisdoc="F:\\temp\\psd\\"
var options=PhotoshopSaveOptions                        //保存格式
var asCopy=true                                                      //以副本方式保存
var extensionType=Extension.LOWERCASE            //定义后缀为小写格式
var docnumber=app.documents.length                //获取当前文档数量
var document
var docname
var fileOut

for(var i=0;i<docnumber;i++)
{
savedoc()
}

function savedoc(){

document=app.activeDocument             //当前文档
document.artLayers.add()                      //新建1空白图层
docname=document.name
fileOut=new File(thisdoc+docname)      //保存路径
document.saveAs(fileOut,options,asCopy,extensionType)       //执行语句
document.close(SaveOptions.DONOTSAVECHANGES)          //强制关闭文档
    }


函数说明:
saveAs(saveIn[,options][,asCopy][,extensionType])
1参:文件路径文件名       2参:文件格式(可无)         3参:是否为存为副本(可无)         4参:后缀名大小写(可无)

2参可选格式有:
BMPSaveOptions
DCS1_SaveOptions
DCS2_SaveOptions
EPSSaveOptions
GIFSaveOptions
JPEGSaveOptions
PDFSaveOptions
PhotoshopSaveOptions
PICTFileSaveOptions
PICTResourceSaveOptions
PixarSaveOptions
PNGSaveOptions
RawSaveOptions
SGIRGBSaveOptions
TargaSaveOptions
TiffSaveOptions


PhotoshopSaveOptions为psd格式
文件属性设置:无

JPEGSaveOptionsjpg格式
文件属性设置:
embedColorProfile 嵌入色彩配置文件

formatOptions 格式三选一
===========可选值============
FormatOptions.STANDARDBASELINE   基线(”标准”)
FormatOptions.OPTIMIZEDBASELINE基线已优化
FormatOptions.PROGRESSIVE      连续

scans扫描

matte杂边

quality品质(0~12)
PNGSaveOptions png格式
文件属性设置:
compression压缩 (0-9)

interlaced交错

BMPSaveOptions bmp格式
文件属性设置:
alphaChannels保存alpha通道

depth 深度
===========可选值============
BMPDepthType
BMPDepthType.BMP_A1R5G5B5
BMPDepthType.BMP_A4R4G4B4
BMPDepthType.BMP_A8R8G8B8
BMPDepthType.BMP_R5G6B5
BMPDepthType.BMP_R8G8B8
BMPDepthType.BMP_X1R5G5B5
BMPDepthType.BMP_X4R4G4B4
BMPDepthType.BMP_X8R8G8B8
BMPDepthType.EIGHT
BMPDepthType.FOUR
BMPDepthType.ONE
BMPDepthType.SIXTEEN
BMPDepthType.THIRTYTWO
BMPDepthType.TWENTYFOUR

flipRowOrder翻转行序

osType系统类型
===========可选值============
OperatingSystem.OS2    OS2
OperatingSystem.WINDOWS Windows

rleCompression使用 RLE 压缩,只在 osType 为 OperatingSystem.WINDOWS 时有效。


------------------------------------------------------------------------------
在文件3,、文件4中,var document=app.activeDocument必须在循环体内,因为每循环一次就必须重读一次当前文档,否则就会出错。



==========

    textRef.contents = "a;lkdjfas;ldkf \r\n\t ;akldjfa;kldjfdslkfj"//输入文本内容


[\r\n\t]在ps中的效果分别是:
[\r]:      实际文本中 加入回车 。
[\n]:   图层名显示 带回车的文本,实际文本中 空出6个字符。
[\t]:   实际文本中 空出4个字符

先写到这里
希望真正的行家里手不吝指点!

KevinHacker 发表于 2019-1-29 17:34

{:301_1003:}{:301_1003:}请问英文脚本如何转换成中文版本PS可识别的?

netCheney 发表于 2019-1-29 18:08

学习了楼主,之前竟然不知道PS可以支持javascript脚本,谢谢楼主

chinesegao 发表于 2019-1-29 19:11

。。。。。。。。。。。。。。。。。。

kftianji 发表于 2019-1-29 21:49

KevinHacker 发表于 2019-1-29 17:34
请问英文脚本如何转换成中文版本PS可识别的?

我用的Dao版中文CC运行的英文脚本完全没问题;谢谢你的顶贴

低聚果糖 发表于 2019-4-18 11:47

感谢楼主的分享。

梁梁59599 发表于 2019-5-16 08:52

非常感谢,非常全的资料,一二三我都找到了,楼主真好,膜拜

梁梁59599 发表于 2019-5-21 15:11

大神何时归来?我一直在等您

梁梁59599 发表于 2019-5-24 09:06

为了证明我来过,特地顶下帖子

nicai8080 发表于 2019-7-21 15:22

感谢楼主分享
页: [1]
查看完整版本: PS脚本小记(1)