生成一个不同背景的图层到jpgs-Photoshop



我正在努力加快我的工作流程。我有一张食物的照片,需要用不同颜色的背景输出。

现在我一个接一个地隐藏彩色背景层,因为我导出了jpgs。但我觉得必须有一个更快的方法来做到这一点?

任何帮助或提示都将不胜感激。

假设最底层是"背景层",那么上面有三个彩色背景图像。在这些之上是你的艺术。这只是一种识别哪些层是哪个层的情况,首先将它们全部关闭,然后打开。

var srcDoc = app.activeDocument;
var numOfLayers = srcDoc.layers.length;
var n = (numOfLayers - backgrounds.length)-1;
var backgrounds = ["Red", "Yellow", "Blue"];
// switch backgrounds OFF
for (var i = n; i < numOfLayers-1; i++)
{
srcDoc.layers[i].visible = false;
}
// switch them ON one at at time
for (var i = n; i < numOfLayers-1; i++)
{
srcDoc.layers[i].visible = true;
// save
var myFileName = "C:\temp\my_picture_" + i + ".jpg";
save_as_jpg(myFileName);
// Switch it off again
srcDoc.layers[i].visible = false;
}

function save_as_jpg(afilepath)
{
duplicate_it();
// Flatten the jpg
activeDocument.flatten();
// jpg file options
var jpgFile = new File(afilepath);
jpgSaveOptions = new JPEGSaveOptions();
jpgSaveOptions.formatOptions = FormatOptions.OPTIMIZEDBASELINE;
jpgSaveOptions.embedColorProfile = true;
jpgSaveOptions.matte = MatteType.NONE;
jpgSaveOptions.quality = 12;
activeDocument.saveAs(jpgFile, jpgSaveOptions, true, Extension.LOWERCASE);
//close without saving
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}

function duplicate_it()
{
// duplicate image into new document
var str = "temp";
var id428 = charIDToTypeID( "Dplc" );
var desc92 = new ActionDescriptor();
var id429 = charIDToTypeID( "null" );
var ref27 = new ActionReference();
var id430 = charIDToTypeID( "Dcmn" );
var id431 = charIDToTypeID( "Ordn" );
var id432 = charIDToTypeID( "Frst" );
ref27.putEnumerated( id430, id431, id432 );
desc92.putReference( id429, ref27 );
var id433 = charIDToTypeID( "Nm  " );
desc92.putString( id433, str ); // name
executeAction( id428, desc92, DialogModes.NO );
}

最新更新