- 1.简介
- 2.图层相关概念
- 2.1.LayerComp
- 2.2.LayerComps
- 2.3.Layers
- 2.4.LayerSet
- 2.5.LayerSets
- 3.范例
- 3.1.设置激活图层
- 3.2.设置图层样式
- 3.3.复制移动图层
- 3.4.旋转图层
- 3.5.图层类型
- 4.作者寄语
Photoshop图层就如同透明纸堆叠在一起。通过图层来包含其它元素,可以移动图层来移动整个图层。
2.图层相关概念 2.1.LayerComp文档中图层状态的快照,可用于查看不同的页面布局或合成。通过 Document.layerComps 集合访问。 您可以按名称访问图层复合。 例如,这为名为 myLayerComp 的 LayerComp 对象设置了 comment 属性值:
var layercompRef = app.activeDocument.layerComps.getByName("myLayerComp");
layercompRef.comment = "View from shoreline";
2.2.LayerComps
文档中 LayerComp 对象的集合。通过 Document.layerComps 集合属性访问。 例如:
app.activeDocument.layerComps.add("myLayerComp", "View from Shoreline",
true, true, true);
2.3.Layers
文档中图层对象的集合,包括 ArtLayer 和 LayerSet 对象。 通过访问Document.layers 或 LayerSet.layers 集合属性。例如,这使用 length 属性来计算活动文档中图层对象的数量,然后在屏幕上显示数字:
var layerNum = app.activeDocument.layers.length
alert(layerNum)
2.4.LayerSet
一组图层对象,可以包括 ArtLayer 对象和其他(嵌套的)LayerSet 对象。 单个命令可以操作集合中的所有层。通过 Document.layerSets 集合访问文档中的顶级图层集。 您可以按名称访问图层集。 例如,以下设置“myLayerSet”的 allLocked 值:
var layerSetRef = app.activeDocument.layerSets.getByName("myLayerSet");
layerSetRef.allLocked = true
通过父集中的 LayerSet.layerSets 集合访问嵌套层集。 例如:
app.activeDocument.layerSets[0].layerSets[0];
2.5.LayerSets
文档中 LayerSet 对象的集合。通过 Document.layerSets 集合属性访问文档中的顶级图层集。 例如:
var layerSetRef = app.activeDocument.layerSets.add()
通过父集中的 LayerSet.layerSets 集合属性访问嵌套层集。 例如:
var layerSetRef = app.activeDocument.layerSets.getByName("myParentSet");
var childSet = layerSetRef.layerSets.getByName("myChildSet");
3.范例
3.1.设置激活图层
将活动图层设置为活动文档的最后一个艺术图层。
app.bringToFront();
if (app.documents.length == 0)
{
var docRef = app.documents.add();
}
else
{
var docRef = app.activeDocument;
}
if (docRef.layers.length 0) //文档不存在则新建文档
{
var strtRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
var docRef = app.documents.add(320, 240, 72, null, NewDocumentMode.RGB, DocumentFill.WHITE);
app.preferences.rulerUnits = strtRulerUnits;
}
var docRef = app.activeDocument;
var layerSetRef = docRef.layerSets.add();
var layerRef = docRef.artLayers[0].duplicate();
layerRef.moveToEnd(layerSetRef);
docRef = null;
layerSetRef = null;
layerRef = null;
3.4.旋转图层
if (app.documents.length > 0)
{
if (app.activeDocument.activeLayer.isBackgroundLayer == false)
{
docRef = app.activeDocument;
layerRef = docRef.layers[0];
layerRef.rotate(45.0);
}
else
{
alert("Operation cannot be performed on background layer");
}
}
else
{
alert("You must have at least one open document to run this script!");
}
3.5.图层类型
if (!app.documents.length > 0) { // open new file if no document is opened.
var strtRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
var docRef = app.documents.add(320, 240, 72, null, NewDocumentMode.RGB, DocumentFill.WHITE);
app.preferences.rulerUnits = strtRulerUnits;
}
var docRef = app.activeDocument;
var layerRef = docRef.artLayers.add();
layerRef.kind = LayerKind.TEXT;
docRef = null;
layerRef = null;
4.作者寄语
合理的脚本代码可以有效的提高工作效率,减少重复劳动。