javascript - Javascript 在不知道名称的情况下更改 Photoshop 中的第一层名称
问题描述
没有完全找到我在搜索中寻找的东西,所以寻求帮助。我有一个 Javascript,它将循环输入一组图像并将它们堆叠在 Photoshop 中。想要在引入图层时重命名它们。第一个图层名称似乎总是被称为“图层 0”,因此我可以使用以下命令进行选择和更改:
var doc = app.activeDocument;
doc.activeLayer = doc.artLayers.getByName("Layer 0");
// Execute Action
try {
var currentName = "Layer 0";
var newName = "Base_color";
var currentLayer = doc.activeLayer;
if (currentLayer.name == currentName) {
currentLayer.name = newName;
};
catch (e) {
alert('error’);
}
我的一些同事无法运行脚本,因为他们的第一层名称不是“Layer 0”而是“RGBA”(这会使脚本崩溃)。我不想使用“RGBA”执行 OR 语句,而是想创建代码来更改第一层的名称,而不管它的名称是什么,以帮助保持它的防错性。
尝试这样的事情:
var doc = app.activeDocument;
var firstlayername = app.activeDocument.activeLayer.name;
doc.activeLayer = firstlayername;
// Execute Action
try {
var currentName = firstlayername;
var newName = "Base_color";
var currentLayer = doc.activeLayer;
if (currentLayer.name == currentName) {
currentLayer.name = newName;
};
catch (e) {
alert('error’);
}
不能让它工作。有没有办法在不知道名称的情况下获取带入 Photoshop 的第一层名称并进行更改?
谢谢!
这是我的循环:
// Stack images in order of numerical import. Remove all ending numbers.
while(app.documents.length>1){
app.activeDocument = app.documents[1];
var layerName = decodeURI(activeDocument.name).replace(/[0-9]*\....$/,'');
activeDocument.activeLayer.duplicate(documents[0]);
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
activeDocument.activeLayer.name = layerName;
};
解决方案
要重命名底层:
var layers = app.activeDocument.artLayers;
var layer = layers[layers.length - 1];
layer.name = "Test name";
请注意,这不一定是第一层,以便引入这些层。
推荐阅读
- reactjs - Stripe 注入组件的打字道具
- vba - 如何在特定网站上执行(登录)按钮?
- javascript - 在 Javascript 中使用 Class 而不是 ID
- php - 如何获取用户的每月展示次数?
- c++ - 此代码中的 double 精度仅为 6 位
- python - 没有这样的文件或目录” [Errno 2] 没有这样的文件或目录与烧瓶
- .net - w3wp.exe 中出现未处理的 Microsoft .net 框架异常 [5808]
- webrtc - 普通计算机的静态和公共 IP 地址
- c - 程序不会退出第一个 for 循环,我不知道为什么
- kotlin - 如何在 Swift 中扩展类表单 SharedCode 模块?