Вставить изображение как новый слой в Photoshop

Я хочу создать новый слой с изображением в нем. Я не нашел ничего полезного или правильного ответа на этот вопрос.

Что я делаю сейчас:

var oldActive = app.activeDocument;
app.load(new File(path)); //load it into documents
var tempDoc = app.activeDocument;
// backFile.resizeImage(width, height); //resize image into given size i.e 640x480
tempDoc.selection.selectAll();
tempDoc.selection.copy(); //copy image into clipboard
tempDoc.close(SaveOptions.DONOTSAVECHANGES); //close image without saving changes
oldActive.paste(); //paste selection into your document

Код выше открывает новый документ/вкладку и выполняет простую логику, затем закрывает новый документ и возвращает меня к старому и вставляет изображение, которое мне нужно.

Мне не нравится такой подход, потому что пользователь может видеть, как документы мигают/открываются/закрываются.

Я ищу простой способ, который позволяет вставлять изображение в текущий активный документ, не открывая новые.


person smokeelow    schedule 06.10.2016    source источник


Ответы (1)


Хорошо, ребята. Итак, это правильный способ вставить изображение по пути в текущий активный документ, не открывая новые:

var sourceFile= new File(path);
var idPlc = charIDToTypeID( "Plc " );
var desc3 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
desc3.putPath( idnull, sourceFile);
var idFTcs = charIDToTypeID( "FTcs" );
var idQCSt = charIDToTypeID( "QCSt" );
var idQcsa = charIDToTypeID( "Qcsa" );
desc3.putEnumerated( idFTcs, idQCSt, idQcsa );
executeAction( idPlc, desc3, DialogModes.NO );
person smokeelow    schedule 06.10.2016