2015-12-06 2 views
6

Ich versuche, ein Skript für Photoshop, die Größe eines geöffneten Bildes in verschiedenen Größen, wo nur die Breite zählt. Das Ziel ist es, nach jeder Größenänderung den ursprünglichen Zustand des Bildes wiederherzustellen und für eine andere Breite zu laufen. Es gibt einige Skripte online, die das fast tun, aber ich bekomme nur Fehler. Der Fehler, den ich bekomme, ist "undefined ist kein Objekt".Javascript Größe Bild in verschiedenen Größen ändern, wo nur die Breite zählt

Ich habe das folgende Skript im Moment, aber ich bin fest:

// get a reference to the current (active) document and store it in a variable named "doc" 
 
doc = app.activeDocument; 
 

 

 
// these are our values for the END RESULT width and height (in pixels) of our image 
 
var fWidth = 940; 
 

 

 
// our web export optionsvar options = new ExportOptionsSaveForWeb(); 
 

 
function SaveJPEG(saveFile, quality) { 
 
    var exportOptionsSaveForWeb = new ExportOptionsSaveForWeb(); 
 
    exportOptionsSaveForWeb.format = SaveDocumentType.JPEG; 
 
    exportOptionsSaveForWeb.includeProfile = false; 
 
    exportOptionsSaveForWeb.interlaced = false; 
 
    exportOptionsSaveForWeb.optimized = true; 
 
    exportOptionsSaveForWeb.quality = 80; 
 

 

 
} 
 

 

 
var newName = 'F' + doc.name + '.jpg'; 
 

 
doc.exportDocument(File(doc.path + '/' + newName), ExportType.SAVEFORWEB, options); 
 

 
doc.activeHistoryState = doc.historyStates.index(0);

Der undefinierte Fehler wird das Skript an der Linie var newName zu stoppen. Ich muss hinzufügen, dass das für Photoshop CS6 ist.

Jede Hilfe wäre sehr dankbar, danke.

+0

Es scheint zu verwenden, dass 'app.activeDocument' nicht definiert ist. Ist 'Dokumente.Länge! = 0'? (aus [Photoshop scripting: app.activeDocument ist nicht definiert] (http://StackOverflow.com/a/22507865/1115360) –

+0

Egal, da das Dokument Bild mit einem Bild geöffnet wird. So interpretiere ich zumindest und ich bekomme keinen Fehler in dieser Zeile – user310777

+0

Es ist nichts falsch mit der Einstellung 'doc = app.activeDocument;', es ist nur, dass es einen Wert von 'undefined' haben könnte. Dann, wenn Sie versuchen, 'doc. name 'es scheitert, weil' undefined' keine '.name' Eigenschaft hat. Haben Sie' documents.length' überprüft? –

Antwort

0

Wenn das Problem ist, dass es das Skript bricht, sollten Sie versuchen, die try..catch Anweisung

... 

var newName; 

try { 
    newName = 'F' + doc.name + '.jpg'; 
} catch (e) { 
    newName = 'F' + 'name-error' + '.jpg'; 
    console.log('doc.name is not accessible: ' + e.message;); 
} 

... 
Verwandte Themen