2016-12-05 2 views
0

Я просто попытался создать javascript для автоматизации процесса для фотошопа, но я не хочу, чтобы эти части отображались в моей истории, как только я закончу. Как это сделать? Я имею в виду, что не все журналы истории должны быть очищены. Только те, которые выполняются скриптом.Скрыть часть истории фотошопа

Спасибо

+0

К сожалению, 'recentFiles', который является массивом для последних файлов, доступен только для чтения. Невозможно удалить файлы из своего массива. Не можете ли вы использовать File> Clear Recent File после обработки изображения (который не может быть сценарием) –

ответ

0

Вы не можете очистить список последних файлов с помощью сценариев. Вы также можете удалить его с помощью скриптов, поскольку последние файлы прочитаны только.

ВЫ МОЖЕТЕ, однако, сделать копию последних файлов и ПОСЛЕ всей загруженной загрузки в списке (в обратном порядке), чтобы список последних файлов был точно таким, каким вы его нашли.

// recentFiles.length = 0; // doesn't work 


// get only existing recent files 
var myRecentItems = []; 
var s= ""; 
var len = recentFiles.length -1; 
var myTempDirectoryName = "c:\\temp"; 


for (var i = 0; i < recentFiles.length; i++) 
{ 
    var r = recentFiles[i]; 
    if (r.exists) 
    { 
     // alert(r + " exists!"); 
     myRecentItems.push(r); 
     s+= r + "\n"; 
    } 
} 

alert(myRecentItems.length); 

// set to zero 
set_recent_file_length(0); 

// DO STUFF HERE 
// or in this case create small images 
// with random names to pad out the recent files list 

// create new images 
for (var i = 0; i < myRecentItems.length; i++) 
{ 
    var n = get_random_string(8) + ".psd"; 
    create_new_document(10,10, 72, n); 
    // Set savePath and fileName to source path 
    var PSDfile = myTempDirectoryName + "\\" + n; 
    save_psd(PSDfile); 
} 

// END DO STUFF 


// Load the lrecent files list as we found it 
// get the old images back 
for (var i = len; i >= 0; i--) 
{ 
    var r = recentFiles[i]; 
    // open the files in reverse order 
    open_image(r); 
    //close that document without saving 
    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES); 
} 

set_recent_file_length(len); 


function create_new_document(w, h, imageres, docname) 
{ 
    var docRef = app.documents.add(w, h, imageres, docname); 
} 

function open_image(f) 
{ 
    try 
    { 
     var idOpn = charIDToTypeID("Opn "); 
     var desc74 = new ActionDescriptor(); 
     var idnull = charIDToTypeID("null"); 
     desc74.putPath(idnull, new File(f)); 
     executeAction(idOpn, desc74, DialogModes.NO); 
    } 
    catch(e) 
    { 
    alert("Oops!\n" + f + "\n" + e); 
    } 
} 

function save_psd(f) 
{ 
    // save out the image 
    var psdFile = new File(f); 
    psdSaveOptions = new PhotoshopSaveOptions(); 
    psdSaveOptions.embedColorProfile = true; 
    psdSaveOptions.alphaChannels = true; 
    activeDocument.saveAs(psdFile, psdSaveOptions, false, Extension.LOWERCASE); 
    // close that saved psd 
    app.activeDocument.close() 
} 


function set_recent_file_length(num) 
{ 
    var idsetd = charIDToTypeID("setd"); 
    var desc9 = new ActionDescriptor(); 
    var idnull = charIDToTypeID("null"); 
    var ref5 = new ActionReference(); 
    var idPrpr = charIDToTypeID("Prpr"); 
    var idGnrP = charIDToTypeID("GnrP"); 
    ref5.putProperty(idPrpr, idGnrP); 
    var idcapp = charIDToTypeID("capp"); 
    var idOrdn = charIDToTypeID("Ordn"); 
    var idTrgt = charIDToTypeID("Trgt"); 
    ref5.putEnumerated(idcapp, idOrdn, idTrgt); 
    desc9.putReference(idnull, ref5); 
    var idT = charIDToTypeID("T "); 
    var desc10 = new ActionDescriptor(); 
    var idlegacyPathDrag = stringIDToTypeID("legacyPathDrag"); 
    desc10.putBoolean(idlegacyPathDrag, true); 
    var idvectorSelectionModifiesLayerSelection = stringIDToTypeID("vectorSelectionModifiesLayerSelection"); 
    desc10.putBoolean(idvectorSelectionModifiesLayerSelection, true); 
    var idGnrP = charIDToTypeID("GnrP"); 
    desc9.putObject(idT, idGnrP, desc10); 
    executeAction(idsetd, desc9, DialogModes.NO); 
    var idsetd = charIDToTypeID("setd"); 
    var desc11 = new ActionDescriptor(); 
    var idnull = charIDToTypeID("null"); 
    var ref6 = new ActionReference(); 
    var idPrpr = charIDToTypeID("Prpr"); 
    var idFlSP = charIDToTypeID("FlSP"); 
    ref6.putProperty(idPrpr, idFlSP); 
    var idcapp = charIDToTypeID("capp"); 
    var idOrdn = charIDToTypeID("Ordn"); 
    var idTrgt = charIDToTypeID("Trgt"); 
    ref6.putEnumerated(idcapp, idOrdn, idTrgt); 
    desc11.putReference(idnull, ref6); 
    var idT = charIDToTypeID("T "); 
    var desc12 = new ActionDescriptor(); 
    var idRcnf = charIDToTypeID("Rcnf"); 
    desc12.putInteger(idRcnf, num); 
    var idFlSv = charIDToTypeID("FlSv"); 
    desc11.putObject(idT, idFlSv, desc12); 
    executeAction(idsetd, desc11, DialogModes.NO); 
} 


function get_random_string(len) 
{ 
    var chars = "abcdefghijklmnopqrstuvwxyz"; 
    var randString = ""; 
     for (i=0; i<len; i++) 
     { 
      var rnd = Math.floor(Math.random()* chars.length); 
      randString += chars.substring(rnd, rnd +1) 
     } 
     return randString; 
} 
+0

нашел решение, и он работает как магия, попробовал его на extendscript и его замечательный –

Смежные вопросы