यहाँ फ़ोटोशॉप स्क्रिप्टिंग से परिचित किसी के लिए एक फ़ोटोशॉप दस्तावेज़ से परतों की नकल के लिए मेरा अनिवार्य जावास्क्रिप्ट मैक्रो है। मैक पर सीएस 5.5 में परीक्षण और परीक्षण किया गया।
sourceDocumentName
, targetDocumentName
और layersToCopy
आपकी आवश्यकताओं को संपादित करने के लिए एकमात्र चर हैं।
मैक पर, आप बस कुछ के रूप में सहेज सकते हैं copyLayersBetweenDocs.jsx
, फिर चलाने के लिए गोदी में फ़ोटोशॉप आइकन पर स्क्रिप्ट फ़ाइल को ड्रैग-एन-ड्रॉप करें। विंडोज पर, आपको इसे स्क्रिप्ट फ़ोल्डर में सहेजना होगा C:\Program Files\Common Files\Adobe\Startup Scripts CS5\Adobe Photoshop
और इसे फ़ोटोशॉप से खोलना होगा
#target photoshop
app.bringToFront();
var sourceDocumentName = 'source-doc';
var targetDocumentName = 'target-doc';
// populate this array with whatever the names of the layers
// you want to copy are
var layersToCopy = new Array(
'road-scenery',
'car',
'wheels',
'front-passenger',
'rear-passenger'
);
// alternatively, specify the name of a layer group containing
// the layers you want to copy over.
// Just uncomment the following line
//var layersToCopy = 'layer-group-to-copy';
copyLayers( layersToCopy, sourceDocumentName, targetDocumentName );
/**
* Copy layer from one document to another
* @param {string|Array} layersToCopy
* @param {string} sourceDocumentName
* @param {string} targetDocumentName
*/
function copyLayers( layersToCopy, sourceDocumentName, targetDocumentName ) {
var
sourceLayer,
targetLayer,
sourceGroup;
var sourceDoc = app.documents[sourceDocumentName];
var targetDoc = app.documents[targetDocumentName];
if ( app.activeDocument != sourceDoc ) {
app.activeDocument = sourceDoc;
}
if ( typeof layersToCopy === 'string' ) {
sourceGroup = sourceDoc.layerSets.getByName( layersToCopy );
targetLayer = sourceGroup.duplicate( targetDoc, ElementPlacement.PLACEATBEGINNING )
}
else if ( Object.prototype.toString.call( layersToCopy ) === '[object Array]' ) {
for ( var i = 0; i < layersToCopy.length; i++ ) {
sourceLayer = sourceDoc.artLayers.getByName( layersToCopy[i] );
targetLayer = sourceLayer.duplicate( targetDoc, ElementPlacement.PLACEATBEGINNING );
}
}
}