2015-02-21 3 views
2

Я очень новичок в создании Photoshop, поэтому, пожалуйста, несите меня.Photoshop scripting, изменить размер, если ширина изображения больше, чем X

До сих пор у меня есть следующий скрипт, но я продолжаю получать сообщение об ошибке, что ссылка на объект doc недействительна. Может ли кто-нибудь помочь мне правильно назначить мои документы, чтобы я мог работать с ними в моем условном заявлении?

необходимо также помочь сохранить документ с таким же именем файла и его расширение, как это уже имеет, то есть даже если имя файла ужасно отформатирован как «ужасный» spaces.JPEG

СПАСИБО!

var inputFolder = Folder.selectDialog("Select a folder to process"); 

var fileList = inputFolder.getFiles("*.*"); //Use whatever extension you want or no extension to select all files 

for(var i=0; i<fileList.length; i++) { 

if (fileList[i] instanceof File && fileList[i].hidden == false) { 
    // get a reference to the new document 
    var doc = open(fileList[i]) 
}  

// do the resizing. if the width of the document is already less than 500, then don't do anything. Otherwise resize too 500 wide, keep the aspect ratio, and change the resampling. 
if (doc.width < "500px") { 
    // don't do anything 
} 
else { 
    doc.resizeImage(UnitValue(500,"px"),null,null,ResampleMethod.BICUBIC); 
} 

    app.activeDocument.close(); 

}

+0

Быстрый догадка ... изменение ' "500px"' '500' в –

+0

Нет, это не делает никакой разницы. Такая же ошибка. – NotAnotherCliche

ответ

1

Вы используете это в инструментарии ExtendScript? Убедитесь, что вы нацеливаете фотошоп, иначе ваш объект app.activeDocument будет пустым. Когда я нацелен на фотошоп, ваш скрипт работает нормально.

Чтобы сохранить документ - если вы хотите сохранить его по оригиналу, это так же просто, как вызвать app.activeDocument.save() перед закрытием документа. Если вы хотите сохранить его в новом месте, измените фрагмент ниже. Более подробная информация о объекте options доступна в вашем документе JavaScript Ref в каталоге установки вашего фотошопа.

var options = new PhotoshopSaveOptions(); 
options.embedColorProfile = true; 
options.alphaChannels = true; 

saveFile = new File("/some/other/folder/" + app.activeDocument.name + ".psd") 
app.activeDocument.saveAs(saveFile, options, false, Extension.LOWERCASE); 
app.activeDocument.close(); 
+0

Отлично, спасибо! – NotAnotherCliche

2

Вот окончательный рабочий сценарий. Надеюсь, это поможет кому-то еще изменить размер изображений, используя условие ширины изображения. Спасибо!

var inputFolder = Folder.selectDialog("Select a folder to process"); 
var fileList = inputFolder.getFiles("*.*"); //Use whatever extension you want or no extension to select all files 

for(var i=0; i<fileList.length; i++) { 
    open(fileList[i]); 

    // do the resizing. if the width of the document is already less than 500, then don't do anything. Otherwise resize to 500 wide, keep the aspect ratio, and change the resampling. 
    if (activeDocument.width > "500") { 
     activeDocument.resizeImage(UnitValue(500,"px"),null,72,ResampleMethod.BICUBIC); 
     app.activeDocument.save(); 
    } 

    app.activeDocument.close(); 
}