Рекламирайте тук Затвори
Реклама в секции форуми и базар

Под формата на платени обяви можете да рекламирате ваши продукти, услуги или други комерсиални дейности. Обявата може да бъде публикувана избирателно във форум по ваше желание или във всички форуми на сайта.

За стандартната ценова листа и условия изпратете
запитване до webmaster@photo-forum.net.
Платени обяви
        
 Теми - forum: Фотография
 първа  назад  1     всички  напред  последна
 Фотошоп и JavaScript
Автор: explorer   
Дата:   29-01-09 15:00

Да споделя малко опит, който може да бъде полезен на някой. С екшъните във Фотошоп могат да се правят много неща, но не всичко. Например, исках да си направя екшън, който да ми прави тъмбнейли - просто и лесно на пръв поглед. Обаче аз исках тъмбнейлите да са ми винаги с еднакъв размер - да речем, квадратни, независимо от оригиналния размер на снимката. За да стане това, екшъна трябва да първо да кропне снимката до правилното съотношение ширина:височина (aspect ratio) - в случая с квадратните тъмбнейли, ако снимката е на височина, да се изреже отгоре и отдолу за да стане квадратна, и чак тогава да се намали до желания размер. Това с екшън няма как да стане, но за щастие във Фотошоп има и скриптинг. След като потърсих в Google бързо намерих подходящ JavaScript, който с малко преработка ми върши точно каквото искам:



var thumbWidth = 140;
var thumbHeight = 180;

doc = app.activeDocument;

var newWidth = (doc.height * thumbWidth) / thumbHeight;
var newHeight = (doc.width * thumbHeight) / thumbWidth;

if (doc.height > newHeight) {
doc.resizeCanvas(doc.width, newHeight, AnchorPosition.MIDDLECENTER);
}
else {
doc.resizeCanvas(newWidth, doc.height, AnchorPosition.MIDDLECENTER);
}

doc.resizeImage(thumbWidth, thumbHeight, null, ResampleMethod.BICUBICSHARPER);

var options = new ExportOptionsSaveForWeb();
options.quality = 70;
options.format = SaveDocumentType.JPEG;
options.optimized = true;

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



Този скрипт прави тъмбнейл и го записва в директорията на оригиналния файл с име thumb_XXXX.jpg. thumbWidth и thumbHeight си ги сетвате на съответните размери, с които искате да бъде тъмбнейла. Този скрипт го записвате във файл с подходящо име, примерно Thumbnail.jsx и го копирате в Presets/Scripts директорията на Фотошоп инсталацията. Рестартирате Фотошоп и скрипта може да се пуска от менюто File / Scripts / Thumbnail. Цялата документация на JavaScript за Фотошоп я има тук:

http://www.adobe.com/devnet/photoshop/pdfs/photoshop_cs4_javascript_ref.pdf

Ако искаме да направим тъмбнейли от много файлове, правим си екшън: отваряме един файл, стартираме записването на екшъна, избираме от менюто File / Scripts / Thumbnail, после затваряме снимката и спираме записването. Вече можем да ползваме File / Automate / Batch със новия екшън - за Destination избираме None, тъй като скрипта сам си записва тъмбнейла.

И един последен трик - ако искаме да ползваме новия екшън направо от Windows Explorer, във Фотошоп правим т.н. дроплет: File / Automate / Create droplet и го създаваме с подходящо име, примерно Thumbnail.exe направо на десктопа (както при Batch, за Destination пак избираме None). Вече можем директно от Windows Explorer да драгнем файлове и да ги дропнем върху дроплета и той ще стартира Фотошоп и ще направи тъмбнейлите.


Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: Dani_Koev_BG   
Дата:   29-01-09 15:07

[smilie24]

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: nikola_bathory   
Дата:   29-01-09 15:14

Браво на теб за тъмбовете, но аз препоръчвам програмата ACDSee за тази цел - много е удобна. [smilie24] [smilie3]

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: krist   
Дата:   29-01-09 15:20

[smilie24]

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: J0R0   
Дата:   29-01-09 15:23

При мен забива фотошоп [smilie11]

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: didesignbg   
Дата:   29-01-09 15:24

[smilie24]

Ето едно и от мен, пускал съм го и преди.
Цел: Автоматично оразмеряване на файлове при конкретно зададен размер. Въпросът е да се има предвид дали снимката е във вертикален или хоризонтален формат и според това да се променя размерът. С 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;
за портретните кадри

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: explorer   
Дата:   29-01-09 15:25

Хмм... кога забива? С коя версия си - аз съм с CS3?

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: J0R0   
Дата:   29-01-09 15:30

прави огромен по размери файл, който се опитва да сейв фор уеб и забива

с цс3 съм

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: explorer   
Дата:   29-01-09 15:33

А какъв е размера на оригиналната снимка?

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: J0R0   
Дата:   30-01-09 10:50

Значи скрипта си работи, но не знам по каква причина подразбира да направи тъмба в инчове, а не в пиксели.
Като стартирам прави файл 140х180 инча, който е огромен и затова забива.
Като намаля стойностите - работи, обаче е кофти да преизчисляваш малки по размер тъмбове в инчове, не знам и доколко е точно.
Търсих в общите настройки на ФШ къде се задават мерните единици по подразбиране, но не намерих - има само за рулери, рамки и т.н. глупости.

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: krist   
Дата:   30-01-09 10:58

може би някъде в скрипта трябва да се зададат мерните единици.. ето тия два реда ми мязат на такова нещо, но защо не бачка?[smilie2] :

desc.putUnitDouble( cTID('Wdth'), cTID('#Pxl'), width );
desc.putUnitDouble( cTID('Hght'), cTID('#Pxl'), height );


Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: J0R0   
Дата:   30-01-09 11:03

Аз говоря за първия скрипт - най-горе в темата.

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: Canon   
Дата:   30-01-09 11:08

Виж на 215стр.
Units

CM
INCHES
MM
PERCENT
PICAS
PIXELS
POINTS

по подразбиране стойностите за преорамеряване се задават с ruler-ските дименсии

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: J0R0   
Дата:   30-01-09 11:14

Да, така стана, обаче пък е гадно да гледам рулерите в пиксели, абе няма угодия...
[smilie24]

[beer]

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: ALBIREO   
Дата:   30-01-09 11:22

[thankyou] [thankyou] [thankyou]
Така и не си бях мръднал пръста да разуча нещата около скриптовете, но ето, че дойде моментът. Браво за темата. Изключително ми е полезна. [smilie24] [beer] [shtrak]

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: ALBIREO   
Дата:   30-01-09 13:45

Безплатни и полезни скриптчета -> http://morris-photographics.com/photoshop/scripts/index.html
.

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: asahi   
Дата:   30-01-09 14:21


Photoshop_cs4_javascript_ref.pdf го има и в директориите на Фотошопа.

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: krist   
Дата:   30-01-09 14:44

JORO, ако това за рулерите е вярно, може да опиташ следното:

В началото на скрипта слагаш следните два реда. С тях запазваме настройката на мерните единици на рулерите и после временно ги слагаме на пискели:


var startRulerUnits = app.preferences.rulerUnits
app.preferences.rulerUnits = Units.PIXELS


после в края на скрипта слагаме ред за връщане на мерните единици каквито са били преди това със следния ред:


app.preferences.rulerUnits = startRulerUnits


Не съм го тествал, но се надявам да свърши работа[smile] Въобще с тия скриптове ще ме хвърлите още в по-дълбокото вие[smilie25] Размахва пръст...

ЕДИТ: забележи, че малките и големи букви са от голямо значение - най-добре копирай и пействай директно от тук...



Публикацията е редактирана (30-01-09 14:48)

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: J0R0   
Дата:   30-01-09 15:33

krist [beer] [beer] [beer]

[smilie24] [smilie24] [smilie24]

Отговори на това съобщение
 Re: Фотошоп и JavaScript
Автор: krist   
Дата:   30-01-09 16:23

е, радвам се![smile] още не мога да ти се издължа само за концерта на Гарбарек дет' се вика[smilie3]

Отговори на това съобщение
 първа  назад  1     всички  напред  последна

За да пишете мнения трябва да влезете с потребителското си име.
Влезте от тук »