Javascript във Фотошоп

Страницата е създадена на:17 декември 2020 и редактирана на: 2 октомври 2024

Един от езиците за програмиране, с които могат да се създават нови фукции във Фотошоп е Javascript. Всъщност, и някои "фабрични" функции на Фотошоп, стартиращи се от подменю File - Scripts са реализирани чрез Javascript файлове, намиращи се в директория C:/Program Files/Adobe/Adobe Photoshop 2024/Presets/Scripts/.

Файловете с програмен код на Javascript могат да имат разширения .js или .jsx. В Windows разширението .js е асоциирано с Windows Script Host. Ето защо, по-подходящо е разширение .jsx, което може да се асоциира с Фотошоп, и така файловете да се отварят и изпълняват от Фотошоп при двойно щракване върху имената им.

За създаване и редактиране на .jsx файлове може да се използва всеки удобен за целта редактор, например: Notepad++, Visual Studio Code, или дори Notepad, или WordPad.

Един съвсем прост пример за скрипт показващ съобщението "Здравейте!" е файл с име, например, test.jsx, с единствен ред програмен код:

alert("Здравейте!")

Двойното щракване с мишката върху името на файла стартира Фотошоп и показва съобщение:

За обръщане чрез Javascript към конкретни обекти и изпълняване на действия с тях трябва да се има предвид йерархията на обектите във Фотошоп. В корена на тази йерархия е обект от клас Application, който на Javascript е обект с име app и представлява самото приложение Фотошоп. Този обект съдържа колекция от обекти (documents), представляващи отворените документи, а всеки обект документ - обекти, представляващи неговите детайли: слоеве (artLayers), канали и т.н.

Още един пример за скрипт, който създава нов документ и вмъква текстов слой в него с надпис "Здравейте!":

// Запазване на текущите мерни единици
var originalUnit = preferences.rulerUnits
// Задаване на мерни единици
preferences.rulerUnits = Units.INCHES
// Създаване на нов документ с размери 3 х 4 инча
var docRef = app.documents.add( 3, 4 )
// Създаване на нов слой
var artLayerRef = docRef.artLayers.add()
// Задаване тип на слойя
artLayerRef.kind = LayerKind.TEXT
// Задаване на текст в текстовия слой
artLayerRef.textItem.contents = "Здравейте!"
// Освобождаване на използваните ресурси
docRef = null
artLayerRef = null
// Възстановяване на предишните мерни единици
preferences.rulerUnits = originalUnit

 

 

Copyright CC BY-ND 4.0.
Посещения на страницата: общо 1930 днес 1
Направено с VanyoG CMS.
Force Reload