Domanda

i tuoi newb schermi up, sto per cospargere con un po '.
Sto cercando di ottenere Photoshop CS4 per aprire un folderful di immagini JPEG con AppScript + Python, che potrebbero essere descritti in questo modo in bash:

#!/bin/bash
for F in `ls ~/Desktop/test`; do
    open -a "Adobe Photoshop CS4" $F
    # proceed to mutilate the image appearance
done

Sono in mancanza nella fase ls ~/Desktop/test. Mi piacerebbe davvero chiedere Finder per elencare una cartella per me, e alimentare il risultato in Photoshop uno alla volta per elaborarli.
Un equivalente JavaScript con il ponte ExtendScript di Adobe potrebbe essere:

#target photoshop
var folder = Folder("~/Desktop/test");
var images = folder.getFiles();
for (var i=0; i < images.length; i++) {
    if (images[i] instanceof File && images[i].hidden == false) {
        var doc = app.open(images[i]);
        // do something to the image here
        doc.close(SaveOptions.DONOTSAVECHANGES);
    }
}

I mi può ottenere un oggetto document_file con un aggeggio terribilmente stupido come x = app('Finder').home.folders['Desktop']().folders['test']().items()[0], ma che si rivela essere un oggetto davvero sciocco. Cercando di app('Adobe Photoshop CS4').open(x) questo oggetto getterà un OSERROR: 1230, con un MESSAGE: File/Folder expected.

(Uh-oh, questo document_file risponde effettivamente URL(), così File.makewithurl(x.URL()) può essere immessa nella open())

Ehm, dopo aver risolto questo, c'è un modo per farlo in realtà questo chiedendo Finder per l'elenco dei file in una determinata cartella specificata da un percorso UNIX ?

È stato utile?

Soluzione

comando di apertura di Photoshop richiede un oggetto alias (o un elenco di oggetti alias).

from appscript import *

folder = '/path/to/folder'

ps = app('Adobe Photoshop CS4')

for f in app('Finder').items[mactypes.Alias(folder)].files.get(resulttype=k.alias):
    ps.open(f)
    # do stuff here...
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top