İşte Photoshop komut dosyasıyla aşina olan herkes için katmanları bir Photoshop belgesinden diğerine kopyalamak için zorunlu Javascript makro. Mac üzerinde CS 5.5'te denenmiş ve test edilmiştir.
sourceDocumentName
, targetDocumentName
Ve layersToCopy
sen ihtiyaçlarınıza düzenlemeniz gerekir sadece değişkenlerdir.
Mac'te, tıpkı bir şey gibi kaydedebilir copyLayersBetweenDocs.jsx
, ardından çalıştırmak için dock'taki Photoshop simgesindeki script dosyasını sürükleyip bırakın. Windows'ta, komut dosyaları klasörüne kaydetmeniz C:\Program Files\Common Files\Adobe\Startup Scripts CS5\Adobe Photoshop
ve Photoshop uygulamasından açmanız gerekir.
#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 );
}
}
}