社评触“日本人打扑克又疼又叫原声-哔哩哔哩冲叠颈濒颈产颈濒颈...
那是这叁年多来,我第一次独自一个人坐高铁。我感觉又回到受伤之前,有能力独自完成一些事情了。那种充满活力,说走就走,一切都尽在掌握的感觉,让我对未来充满信心。
2024年12月18日,2022年增加股息的公司包括芯片制造商Broadcom股份有限公司、快餐业巨头麦当劳公司、信用卡公司Visa Inc.和生物制药公司AbbVie股份有限公司。
社评触“日本人打扑克又疼又叫原声-哔哩哔哩冲叠颈濒颈产颈濒颈...
JavaScript自动化photoshop基础篇2023-11-25 01:01·红装爱麻将1脚本可以成为你的助手但脚本不仅可以完成动作或宏的功能还允许你在一个脚本中操作多个文档和多个应用程序如果你使用MacOS系统:AppleScriptJavaScript如果你使用Windows系统:VBScript(Visual Basic和VBA也可用)JavaScriptJavaScript相对于AppleScript和VisualBasic有一些小优势:你的脚本可以在Windows或MacOS中使用如果有可能你想要在两个平台上分享或使用你的脚本你应该学会使用JavaScript在Photoshop中你只能从应用程序内访问.jsx 文件脚本基础1脚本的构建块在脚本编写中名词被称为对象而动词被称为命令(在AS中)使用属性修改脚本对象要修改命令或方法使用参数2理解对象、属性、方法和命令文档内创建或操作图层、文本、框架、通道、图形线、颜色和其他设计元素这些东西都是对象要创建脚本语句创建一个对象或引用一个现有对象然后执行以下操作之一:为对象的属性定义值例如可以指定文档的名称、高度或宽度可以指定图层的名称、颜色或不透明度指定命令或方法告诉脚本对的对象执行什么操作例如可以打开、关闭、保存和打印文档可以合并、移动或光栅化图层在编写脚本时要记住的一点是只能使用对象允许的属性或方法/命令要知道哪些属性和方法适用于哪个对象怎么办在很大程度上这是合乎逻辑的通常如果可以在Adobe应用程序中指定某些内容就可以在脚本中指定它3使用对象在脚本中使用对象的主要概念是如何引用一个对象如何让应用程序知道的脚本要更改哪个对象在应用程序的用户界面中可以通过单击对象来简单选择它但在脚本中情况会稍微复杂一些DOM概念DOM的原则是包含层次结构注意:对象的包含对象也被称为其父对象因此按照DOM原则如何在文档中添加一个图层(在JS中图层称为artLayers)app.documents.layers.add();本指南介绍了三种引用对象的方法:- 变量- 集合或元素编号- 当前对象或活动对象属性(1)变量创建了一个名为myDoc的变量来包含文档var myDoc = app.documents.add();创建另一个变量来保存图层var myDoc = app.documents.add();var myLayer = myDoc.layers.add();保存对象的变量还保存了标识该对象的整个包含层次结构变量命名所有变量名称必须符合以下规则:(2)在JS中第一个文档是documents[0](请注意方括号中的索引)因为(一开始很难记住)JavaScript从0开始对集合对象编号通过索引引用文档和图层对象以添加新的对象注意:因为以下脚本不使用变量所以在每个对象引用中都需要整个包含层次结构app.documents.add();app.documents[0].layers.add();app.documents[0].layers[0].textFrames.add();元素和集合如何为后续项编号以下是脚本语言处理将第二个对象添加到集合或元素时的自动编号方式:JS集合编号是静态的;添加的第一个对象被分配编号0添加到集合的下一个对象是编号1;如果添加第三个对象则其编号为2指代当前或活动对象方便的是许多父对象包含属性允许轻松地引用活动对象(3)在JS中属性名称是一个合成词结合了"active"和对象名称在标准JS用例中:- 组合术语中的第一个单词为小写- 组合术语中的第二个单词(以及所有后续单词)使用首字母大写一些示例包括:activeDocument(活动文档)activeLayer(活动图层)activeChannel(活动通道)activeView(活动视图)app.documents.add();app.activeDocument.layers.add();使用属性要定义或修改对象的属性需要执行以下三个步骤:1. 命名对象2. 命名属性3. 指定属性的值(1)值可以是以下任何数据类型:字符串是被解释为文本的字母数字文本用引号("")括起字符串字符串包括对象的名称等值数值是可用于数学运算(如加法或除法)的数字值数学数字包括帧一侧的长度或段落之间的间距、不透明度百分比、字体大小、描边权重等变量当将变量用作属性值时不需要像字符串那样将变量括在引号中布尔值即true或false常量值(也称为枚举)是一组预定义的可选择值列表(AS)或数组(JS和VBS)一些属性需要多个值例如点位置的页面坐标(x和y坐标)或文本框或几何对象的边界单个属性的多个值在AS中称为列表在JS或VBS中称为数组每种语言都指定了格式规则列表或数组必须被括起在JS中数组用方括号括起:[]值之间用逗号(,)分隔可以在逗号后包含或省略空格;这没有关系JS(3,4,5)或["string1","string2", "string3"]列表或数组可以包含嵌套的列表或数组例如页面坐标的列表在以下示例中请注意每个嵌套数组都是单独括起的并且嵌套数组之间用逗号分隔JS[[x1,y1], [x2, y2], [x3, y3]]可以使用properties属性在单个语句中设置多个属性将多个属性格式化为一个由大括号括起的数组在数组中使用冒号(:)分隔每个属性名称/属性值对以下脚本使用properties定义了图层的名称和可见性状态var myDoc = app.documents.add();var myLayer = myDoc.layers.add();myLayer.properties = {name: "My NewLayer", visible: false};(2)在JS中使用属性命名要定义或修改属性的对象插入一个句点(.)然后命名属性为指定值请在属性名称后放置等号(=)然后输入值var myDoc = app.documents.add();var myLayer = myDoc.layers.add();myLayer.name = "My New Layer";要定义多个属性可以编写多个语句:var myDoc = app.documents.add();var myLayer = myDoc.layers.add();myLayer.name = "My New Layer";myLayer.visible = false;JS还提供了一种定义多个属性的简写称为with语句var myDoc = app.documents.add();var myLayer = myDoc.layers.add();with(myLayer){name = "My New Layer";visible = false;}理解只读和可读写属性在定义属性值时可以编写具有完美语法的脚本语句但该语句不会产生任何结果使用警报框显示属性的值在JS中显示警报框使用alert() 方法通过键入alert然后在括号中键入对话框内容不要在alert 和第一个括号之间键入空格要查找集合中有多少个对象使用任何集合对象的(只读)length属性以下脚本显示一个警报框告诉文档集合中有多少个文档然后添加一个文档并显示一个更新后的数字的新警报注意:集合对象名称是对象的复数形式例如文档对象的集合对象是documents 对象alert(app.documents.length);var myDoc = app.documents.add();alert(app.documents.length);以下脚本在警报框中显示文档的名称var myDoc = app.documents.add();alert(myDoc.name);(3)常量值和枚举一些属性的值由应用程序预定义在脚本编写中这些预定义值被称为常量或枚举使用常量或枚举类似于在应用程序用户界面中使用下拉列表注意:要查找是否必须使用枚举作为属性值在JavaScript中键入枚举名称一个句点(.)然后是枚举值- 在Photoshop中:- 每个枚举都以大写字母开头组合术语中的所有单词也以大写字母开头- 枚举值全部大写下面的示例使用LayerKind枚举使图层成为文本图层var myDoc = app.documents.add();var myLayer = myDoc.artLayers.add();myLayer.kind = LayerKind.TEXT;使用变量存储属性值以下脚本创建变量来存储文档宽度和高度的值然后将这些变量用作更改宽度和高度的语句中的值var myDoc = app.documents.add(7, 10);var docHeight = myDoc.height;var docWidth = myDoc.width;myDoc.resizeCanvas((docHeight - 2), (docWidth -2));使用方法或命令将方法插入到JS语句的末尾在方法名之前必须放置一个句点并在方法名之后加上括号(())app.activeDocument.print();命令或方法参数一些命令或方法需要额外的数据称为参数命令或方法也可以有可选参数必需参数以下脚本使用合并命令该命令需要指示要合并到选定图层的图层的某些指示与属性一样命令参数用花括号({})括起来然而在花括号内只包括参数值而不是参数名称方法参数包含在跟在方法名后的括号中var myDoc = app.documents.add();var myLayer = myDoc.layers.add();var myLayer2 = myDoc.layers.add();myLayer2.merge(myLayer);多个参数在为命令或方法定义多个参数时必须遵循特定规则在JS中必须按照脚本参考资源中列出的顺序输入参数值以便脚本编译器知道哪个值定义了哪个参数要跳过可选参数请键入占位符undefined以下语句创建一个宽度为4000像素高度为5000像素分辨率为72名称为"MyDocument"文档模式为位图app.documents.add(4000, 5000, 72, "MyDocument", NewDocumentMode.BITMAP)下一条语句创建一个相同的文档只是将分辨率留空未定义app.documents.add(4000, 5000, undefined, "MyDocument", NewDocumentMode.BITMAP)注意:仅使用undefined占位符来"触及"想定义的参数以下语句仅定义文档的高度和宽度;不需要为后续可选参数使用占位符app.documents.add(4000, 5000)改变变量的值在JavaScript中更改变量的值使用变量名称后跟等号(=)和新值不要以var开始重新分配语句;只有在创建新变量时才使用varvar docRef = app.documents.add();var layerRef = myDoc.layers.add();layerRef.name = "First Layer";layerRef = myDoc.layers.add();layerRef.name = "Second Layer";使用变量引用现有对象还可以创建变量来包含现有对象var myDoc = app.activeDocument;使脚本文件更易读这一部分涵盖了两个选项有助于使的脚本文件更易读:1注释2换行(1)在JavaScript中://这是单行注释app.activeDocument.print(); //这行的一部分也是注释/*这是一个多行注释无论它包含多少行都完全被脚本引擎忽略不要忘记关闭星号和斜杠否则你的整个脚本都会被注释掉...*/(2)注意:在JavaScript中语句可以包含回车因此不需要延续字符然而ExtendScript解释器将每一行解释为一个完整的语句因此最好只在语句的结尾插入回车使用数组在VBScript和JavaScript中数组类似于集合;但是与集合不同数组不会自动创建可以将数组视为单个变量的值列表例如以下JavaScript数组为变量myFiles列出了四个值:var myFiles = new Array();myFiles[0] = "clouds.bmp";myFiles[1] = "clouds.gif";注意每个值都有编号要在语句中使用值必须包括该编号以下语句打开了文件open(myFiles[1]);到此为止已经掌握了创建执行基本任务的简单脚本所需的知识1JavaScript对象模型查看器属性名称后跟数据类型常量名称以与Adobe应用程序的缩写名称匹配的前缀开头例如:在PhotoshopCS6中枚举使用Ps前缀示例:PsColorProfileTypePsBitsPerChannelType如果数据类型是对象则对象名称是指向对象类型的超链接仅当属性是只读时访问值才会出现如果属性是可读写的则不会显示访问值属性描述显示在信息窗格底部2了解方法列表当在成员窗格中选择方法时方法的信息将按以下方式显示在对象浏览器窗口底部的信息窗格中:每个参数名称后跟数据类型方法名称后跟参数可选参数用方括号括起来([])如果参数名称周围没有括号则该参数是必需的如果数据类型是对象则数据类型是指向对象的超链接如果数据类型是枚举则枚举名称以应用程序的首字母开头并且是指向枚举信息的超链接如果参数存在默认值则该值将在等号(=)后的数据类型之后列出注意:只有可选参数具有默认值如果没有为参数定义值则将使用默认值以下是Photoshop中图层对象的示例属性表其中包含了各种数据类型的示例属性 描述Bounds 只读描述图层边界矩形的坐标数组格式为[yl,xl, y2, x2]Kind 只读图层的类型Name 可读写图层的名称Opacity 可读写不透明度以百分比表示(范围:0.0 到 100.0)TextItem 只读与图层关联的文本项注意:仅在kind= LayerKind时有效TEXT参见kindVisible 可读写如果为true则图层可见3操作对象的方法表对象的方法表列出了以下信息:1可以与对象一起使用的方法2每个方法的参数当参数类型是常量或另一个对象时该值以超链接形式呈现指向常量或对象的清单在下面的方法表示例中参数类型NewDocumentMode和DocumentFill是常量参数可以是必需的或可选的可选参数由方括号([])表示返回值类型即方法生成的内容当返回值是常量或另一个对象时该值以超链接形式呈现指向常量或对象的清单在下面的方法表示例中返回值Document是一个对象3描述定义方法的功能以下是PhotoshopCS6文档的add方法的参数的示例方法表所有参数都是可选的由方括号表示宽度和高度参数默认为当前标尺单位因此数据类型是list:asunitvalue. 换句话说如果当前垂直标尺单位是英寸水平标尺单位是厘米以下语句将创建一个宽度为5英寸、高度为7厘米的文档:JavaScript: `app.documents.add(5, 7)`mode和initialFill采用常量值以下脚本语句为示例方法表中列出的每个参数定义了值app.documents.add(5, 7, 72, "Diary",NewDocumentMode.BITMAP, DocumentFill.TRANSPARENT, 4.7)高级脚本技术大多数脚本并不按顺序从头到尾执行通常脚本根据从当前文档中获取的数据采取不同的路径或者多次重复执行命令控制结构是脚本语言的特性使的脚本能够执行这样的操作条件语句if语句以下每个脚本都会打开一个文档然后检查文档是否只包含一个图层如果只有一个图层存在脚本会添加一个图层并将新图层的填充不透明度设置为65%JavaScript(JS):在JS中if语句以关键词if开头后跟括号中的比较短语将if语句中的操作用花括号{}括起来var myDoc = app.open(File("/c/ProgramFiles/Adobe/Adobe Photoshop CS6/Samples/Ducky.tif"));if (myDoc.artLayers.length == 1) {var myLayer = myDoc.artLayers.add();myLayer.fillOpacity = 65;}注意:JavaScript使用双等号(==)进行值比较与用于分配值给属性或变量的单等号(=)不同现在关闭Ducky.tif然后尝试使用以下if语句运行脚本:if(myDoc.artLayers.length < 1) {}有时可能会有一个稍微复杂的要求例如:如果文档只有一个图层将图层的填充不透明度设置为50%——但如果文档有两个或更多图层将活动图层的填充不透明度设置为65%这种情况需要使用ifelse语句javascriptvar myDoc = app.open(File("/c/ProgramFiles/Adobe/Adobe Photoshop CS6/Samples/Ducky.tif"));if (myDoc.artLayers.length < 2) {myDoc.activeLayer.fillOpacity = 50;} else {myDoc.activeLayer.fillOpacity = 65;}循环JavaScript(JS):javascriptvar myDoc = app.activeDocument;var myLayerCount = myDoc.layers.length;for (var myCounter = 0; myCounter 最近,国内旅游业可谓是火热朝天,尤其是一些沿海地区非常受欢迎。郑智化小楷抄经《兜沙经》