2015-12-06 48 views
6

Tôi đang cố gắng tạo một kịch bản cho Photoshop để thay đổi kích thước hình ảnh mở ở các kích thước khác nhau. Mục tiêu là sau mỗi lần thay đổi kích thước, nó sẽ khôi phục trạng thái ban đầu của hình ảnh và chạy với chiều rộng khác. Có một số kịch bản trực tuyến mà gần như làm điều này nhưng tôi chỉ nhận được lỗi. Lỗi tôi nhận được là "không xác định không phải là một đối tượng".Javascript thay đổi kích thước hình ảnh ở các kích thước khác nhau chỉ với chiều rộng là

Tôi có đoạn mã sau vào lúc này nhưng tôi bị mắc kẹt:

// 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);

Lỗi không xác định được dừng lại kịch bản ở dòng var newName. Tôi phải thêm vào đó là dành cho Photoshop CS6.

Bất kỳ trợ giúp nào cũng sẽ được đánh giá cao.

+0

Dường như 'app.activeDocument' là undefined. Là 'documents.length! = 0'? (từ [Photoshop scripting: app.activeDocument is undefined] (http://stackoverflow.com/a/22507865/1115360) –

+0

Không quan trọng vì hình ảnh tài liệu được mở bằng một hình ảnh. Ít nhất đó là cách tôi diễn giải và tôi không nhận được một lỗi trên dòng này – user310777

+0

Không có gì sai với thiết lập 'doc = app.activeDocument;', nó chỉ là nó có thể có một giá trị 'undefined'. Sau đó, khi bạn cố gắng để có được' doc. name' nó không thành công vì 'undefined' không có thuộc tính' .name'. Bạn có kiểm tra 'documents.length'? –

Trả lời

0

Nếu vấn đề là nó phá vỡ kịch bản của bạn, bạn nên cố gắng sử dụng câu lệnh try..catch

... 

var newName; 

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

... 
Các vấn đề liên quan