Javascript PS js脚本循环槽层,使一个接一个可见,并保存之间的每一次
希望标题听起来不会让人困惑。 我想用脚本做的是:Javascript PS js脚本循环槽层,使一个接一个可见,并保存之间的每一次,javascript,photoshop-script,Javascript,Photoshop Script,希望标题听起来不会让人困惑。 我想用脚本做的是: 在工作文件中打开智能对象层 获取第一层名称,使第一层可见,更新智能对象 从主文档的组(颜色)中获取名称和活动层 2.Name+3.Name并另存为.png 请参见附件中的图表以及此处的简短屏幕广播: 谢谢你的帮助 #目标photoshop //这将当前活动文档存储到变量mockupDoc var mockupDoc=app.activeDocument; //这将存储Front.psd文件的名称,以便Photoshop可以在正确的文档中查找活
#目标photoshop
//这将当前活动文档存储到变量mockupDoc
var mockupDoc=app.activeDocument;
//这将存储Front.psd文件的名称,以便Photoshop可以在正确的文档中查找活动层。
var designDoc=app.documents.getByName(“Front.psd”);
//获取Front.psd的活动层的名称
var designlayer=designDoc.activeLayer;
//获取名称和位置;
var docName=mockupDoc.name;
如果(docName.indexOf(“.”!=-1){var basename=docName.match(/(.*)\..[^\.]+$/)[1]}
else{var basename=docName};
//获取位置,如果未保存,则保存到桌面;
请尝试{var docPath=mockupDoc.path}
catch(e){var docPath=“~/Desktop”};
//jpg选项,但希望通过我的小png/jpg PS插件而不是PS native来保存
var jpegOptions=新的JPEGSaveOptions();
jpegOptions.quality=9;
jpegOptions.embedColorProfile=true;
jpegOptions.matte=MatteType.NONE;
//在Front.psd中保存包含活动层名称的实体模型文件
mockupDoc.saveAs((新文件(docPath+'/'+basename+''+designDoc.activeLayer.name+'.jpg')),jpegOptions,true)代码>欢迎使用堆栈溢出。通常情况下,我们会要求查看您编写了哪些代码——即使它不起作用,也只需输入注释来解释您正在尝试执行的操作。在提问时,破译的代码总比没有好。但也要记住,SO不是脚本编写服务
在层上循环是直接的-暂时避免分组-这更高级。环顾四周,您应该会找到保存PNG的代码
这会让你开始
// Call the open document the source document
// It's easier than having to type app.activeDocument each time :)
var srcDoc = app.activeDocument;
// create a variable that holds the number of layers in the psd
var numOfLayers = srcDoc.layers.length;
// temp string to hold all layer names
var str = ""
// loop over each layer - from the background to the top
for (var i = numOfLayers -1; i >= 0 ; i--)
// for the top to the bottom use: for (var i = 0; i < numOfLayers; i++)
{
// get the name of each layer
var layerName = srcDoc.layers[i].name;
// add the layer name to a string
str += layerName + "\n";
// set the visiblity of each layer to true (on)
srcDoc.layers[i].visible = true;
}
// display the layer names
alert(str);
function save_as_png(myFilePath)
{
var f = myFilePath + ".png";
// save out the image
var pngFile = new File(f);
pngSaveOptions = new PNGSaveOptions();
pngSaveOptions.embedColorProfile = true;
pngSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
pngSaveOptions.matte = MatteType.NONE; pngSaveOptions.quality = 1;
activeDocument.saveAs(pngFile, pngSaveOptions, false, Extension.LOWERCASE);
}
//将打开的文档称为源文档
//这比每次都必须键入app.activeDocument更容易:)
var srcDoc=app.activeDocument;
//创建一个变量,用于保存psd中的层数
var numOfLayers=srcDoc.layers.length;
//保存所有图层名称的临时字符串
var str=“”
//在每一层上循环-从背景到顶部
对于(var i=numOfLayers-1;i>=0;i--)
//从上到下使用:for(var i=0;i
谢谢@Mr神秘客
我同时解决了大部分任务,并在下面添加了代码。也许其他一些用户会发现它的某些部分很有用,或者有更好的解决方案
/================================================================================================================================================================================================================================================================================================================================================
//jpg选项。
var jpegOptions=新的JPEGSaveOptions();
jpegOptions.quality=9;
jpegOptions.embedColorProfile=true;
jpegOptions.matte=MatteType.NONE;
//PNG选项。
pngOptions=新的PNGSaveOptions()
pngOptions.compression=0
pngOptions.interlaced=假
//=========================================================================================================================================================================================================
//“粘贴到位”函数的变量
cTID=函数{return app.charIDToTypeID;};
sTID=函数{返回app.stringIDToTypeID;};
//检查哪个是Mockup.psd文件(因为我的名字不同,但总是包含“Mockup”)
var docs=app.documents;
对于(var i=docs.length-1;i>=0;i--){
if(docs[i].name.indexOf('Mockup')>0){
var mockupDoc=docs[i];
}
}
//获取Mockup.psd的名称和位置,并从名称/字符串中删除“Mockup”。
var mockupDocName=mockupDoc.name.replace(/Mockup/i',);
if(mockupDocName.indexOf(“.”!=-1){var basename=mockupDocName.match(/(.*)\.[^\.]+$/)[1]}
else{var basename=mockupDocName};
//获取Mockup.psd的位置;
var mockupDocPath=mockupDoc.path
//layerset“GTO后台”的设置变量
var gtoBG=mockupDoc.layerSets.getByName(“GTO背景”);
//这将存储Front.psd文件的名称,以便Photoshop可以在正确的文档中查找活动层。
var designDoc=app.documents.getByName(“Designs Front.psd”);
var currentLayer=designDoc.activeLayer;
//创建一个变量,用于保存psd中的层数
var numOfLayers=designDoc.layers.length;
//保存所有图层名称的临时字符串
//var str=“”
//获取每个层的名称
//var layerName=designDoc.layers[i].name;
//将图层名称添加到字符串中
//str+=layerName+“\n”;
函数resetDesignDoc(){
//将“FRONT.psd”又名designDoc设置为活动文档。
app.activeDocument=designDoc;
//在每一层上循环-从背景到顶部
对于(var i=numOfLayers-1;i>=0;i--)
//从上到下使用:for(var i=0;i