Автор: didesignbg
Дата: 29-01-09 15:24
Ето едно и от мен, пускал съм го и преди.
Цел: Автоматично оразмеряване на файлове при конкретно зададен размер. Въпросът е да се има предвид дали снимката е във вертикален или хоризонтален формат и според това да се променя размерът. С action-ите не знам как да го направя. Заобиколния начин, който в момента използвам, е да сортирам ръчно в две отделни папки хоризонталните и вертиклните снимки и да пусна от Automate -> Batch по един action за всяка папка по отделно. Някой може ли да ми каже по-интелигентно решение?
Примерна ситуация:
Папка „14-02-08” съдържа 120 снимки с хоризонтална ориентация (3000 х 2000 px) и 150 снимки с вертикална (2000 x 3000 px). Целтът е хоризонталните кадри да се смялят на 1000 х 667 пиксела, а вертикалните на 800 х 533 пиксела без да се налага много ръчна намеса - съответно по-лесно и бързо от горепосочения метод.
Решение:
cTID = function(s) { return app.charIDToTypeID(s); };
sTID = function(s) { return app.stringIDToTypeID(s); };
Options = {};
Options.MAX_WIDTH_H = 1000;
Options.MAX_HEIGHT_H = 1000;
Options.MAX_WIDTH_V = 800;
Options.MAX_HEIGHT_V = 800;
fitImage = function(doc, width, height) {
function _ftn() {
var desc = new ActionDescriptor();
desc.putUnitDouble( cTID('Wdth'), cTID('#Pxl'), width );
desc.putUnitDouble( cTID('Hght'), cTID('#Pxl'), height );
var fitId = sTID('3caa3434-cb67-11d1-bc43-0060b0a13dc4');
executeAction(fitId , desc, DialogModes.NO );
};
_ftn();
};
resizeImage = function(doc, opts) {
var originalRez = doc.resolution;
if (doc.width.value > doc.height.value) {
doc.resizeImage(undefined, undefined, 72, ResampleMethod.NONE);
fitImage(doc, opts.MAX_WIDTH_H, opts.MAX_HEIGHT_H);
doc.resizeImage(undefined, undefined, originalRez, ResampleMethod.NONE);
}
else {
doc.resizeImage(undefined, undefined, 72, ResampleMethod.NONE);
fitImage(doc, opts.MAX_WIDTH_V, opts.MAX_HEIGHT_V);
doc.resizeImage(undefined, undefined, originalRez, ResampleMethod.NONE);
}
};
resizeImage(app.activeDocument, Options);
отваряш ноутпад и копираш текста в нов файл съхраняваш като resize_vh.jsx
Слагаш готовия файл в папка C:\Program Files\Adobe\Adobe Photoshop CS?\Presets\Scripts
Рестартираш Фотошоп въпросния скрипт вече може да си го стартираш от File-->Scripts-->resize_vh
Ако желаеш да става автоматично можеш да си запишеш action който да включва скрипта и примерно едно леко изостряне или каквото там искаш. После можеш да направиш Batch, Droplet или каквото си пожелаеш.
Ако желаеш да промениш размерите променяш стойностите на
Options.MAX_WIDTH_H = 1000;
Options.MAX_HEIGHT_H = 1000;
за пейзажните кадри \сменяш с новата стойност и на двете места\
Options.MAX_WIDTH_V = 800;
Options.MAX_HEIGHT_V = 800;
за портретните кадри
|
|