#target photoshop
if (app.documents.length == 0) {
(function () {
var imageFiles = Folder.selectDialog('Select the images folder...', '~/desktop/');
if (imageFiles == null) {
return
};
var maskFiles = Folder.selectDialog('Select the mask folder...', '~/desktop/');
if (maskFiles == null) {
return
};
var outFolder = Folder.selectDialog('Select the save/output folder...', '~/desktop/');
if (outFolder == null) {
return
};
var searchMask = '*.???';
var fileList1 = imageFiles.getFiles(searchMask);
var fileList2 = maskFiles.getFiles(searchMask);
fileList1.sort();
fileList2.sort();
for (var i = 0; i < fileList1.length; i++) {
var doc1 = open(fileList1[i]);
var doc2 = open(fileList2[i]);
app.activeDocument.selection.selectAll();
app.activeDocument.selection.copy();
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
app.activeDocument.paste();
set();
function set() {
var c2t = function (s) {
return app.charIDToTypeID(s);
};
var s2t = function (s) {
return app.stringIDToTypeID(s);
};
var descriptor = new ActionDescriptor();
var reference = new ActionReference();
var reference2 = new ActionReference();
reference.putProperty(s2t("channel"), s2t("selection"));
descriptor.putReference(c2t("null"), reference);
reference2.putEnumerated(s2t("channel"), s2t("channel"), s2t("RGB"));
descriptor.putReference(s2t("to"), reference2);
executeAction(s2t("set"), descriptor, DialogModes.NO);
}
app.activeDocument.activeLayer.remove();
app.activeDocument.activeLayer.isBackgroundLayer = false;
make();
function make() {
var c2t = function (s) {
return app.charIDToTypeID(s);
};
var s2t = function (s) {
return app.stringIDToTypeID(s);
};
var descriptor = new ActionDescriptor();
var reference = new ActionReference();
descriptor.putClass(s2t("new"), s2t("channel"));
reference.putEnumerated(s2t("channel"), s2t("channel"), s2t("mask"));
descriptor.putReference(s2t("at"), reference);
descriptor.putEnumerated(s2t("using"), c2t("UsrM"), s2t("hideSelection"));
executeAction(s2t("make"), descriptor, DialogModes.NO);
}
var fileName = app.activeDocument.name.replace(/\.[^\.]+$/, '');
app.activeDocument.activeLayer.name = fileName;
var docName = app.activeDocument.name.split('.')[0];
var saveFilePSD = new File(new File(outFolder + '/' + 'Masked_' + docName.split('.')[0] + '.psd'));
SavePSD(saveFilePSD);
function SavePSD(saveFilePSD) {
psdSaveOptions = new PhotoshopSaveOptions();
psdSaveOptions.embedColorProfile = true;
psdSaveOptions.alphaChannels = true;
psdSaveOptions.layers = true;
psdSaveOptions.annotations = true;
psdSaveOptions.spotColors = true;
app.activeDocument.saveAs(saveFilePSD, psdSaveOptions, true, Extension.LOWERCASE);
}
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
alert('Script completed!');
})();
}
else {
alert('Please close all open files before running this script!');
}