PhotoShop JavaScript 批处理 学习四 |
您所在的位置:网站首页 › layerset › PhotoShop JavaScript 批处理 学习四 |
前面我们所处理的图层位于图层的“根目录”下,可以直接通过docRef. artLayers. getByName获取。 但是更多的时候,PSD文件中有许多LayerSet,要处理的图层在LayerSet中,甚至包含几层嵌套,不能直接以上面的方法获取,如下图“这还是小黄人”的文本图层在一个多层嵌套中。(要创建LayerSet点击箭头所指图标即可,创建二级LayerSet需先点击一级LayerSet。 创建LayerSet后可把图层拖到文件夹中) 我们调用这个函数 var fileRef = new File('E:/小黄人.psd'); var docRef = app.open(fileRef); changeTextLayerContent(docRef, '这还是小黄人', '成功修改');注意,查找图层集的时候用的是layerSets.getByName,查找图层的时候用的是artLayers.getByName,这是需要区分的,否则程序会运行错误,这段代码的运行效果和递归查找的效果相同。 直接获取既然我们都知道图层结构了,其实根本就不用查找,可以直接根据图层结构关系索引图层,从递归函数里我们可以看到,LayerSet和Layer的数据结构在操作上是可以同等看待的(但注意查找的时候是有区别),我们可以直接索引。 var MyTextlayer1 = docRef.layers[0].layers[0]; MyTextlayer1.textItem.contents = '成功修改一'; var MyTextlayer2 = docRef.layers[0].layers[1].layers[0]; MyTextlayer2.textItem.contents = '成功修改二'; 从上述代码我们可以看到,Layer和LayerSet按索引的获取方式是相同的,docRef.layers[0].layers[0]是一个Layer,而docRef.layers[0].layers[1]则是一个LayerSet。最终修改效果如下: |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |