초보자가 포토샵 스크립트(.jsx)를 만들어 보아 얻은 지식·노하우 정리

11434 단어 포토샵JSX

개요



자바 스크립트를 거의 쓴 적이없는 초보자가 jsx에서 Photoshop 스크립트를
쓰고 얻은 노하우를 간단히 정리했습니다.

환경



Windows7, 64비트
Photoshop CC 버전 7 SP1

Photoshop에서 스크립트(.jsx) 실행



Alt + F → R → B로 스크립트 선택 창이 나타납니다.
실행할 스크립트를 선택하고 OK를 누르면 스크립트가 실행됩니다.
파일(F) → 스크립트(R) → 참조(B)에서도 가능

디버그 관련



alert() 를 사용하면 편리

문서 관련



현재 열려 있는 문서 복제


var copiedDoc = app.activeDocument.duplicate();

copiedDoc에 복제 후 문서가 저장됩니다.

문서 닫기


copiedDoc.close();

저장 확인을 건너 뛰려면 다음과 같이 작성하십시오.
copiedDoc.close(SaveOptions.DONOTSAVECHANGES);

레이어 관련



레이어 선택


app.activeDocument.activeLayer = layer;

activeLayer에 선택하고 싶은 레이어를 대입하면 OK

레이어 표시/숨기기 설정


layer.visible = false; 

false를 넣으면 숨기고 true를 넣으면 표시됩니다.

현재 열려 있는 문서의 모든 레이어 숨기기



HideLayers.jsx
function HideLayers(layObj) {
    var n = layObj.artLayers.length;
    if (n > 0) {
        for (var i = 0; i < n; i++) {
            // レイヤー非表示
            layObj.artLayers[i].visible = false;
        }
    }

    var ns = layObj.layerSets.length;
    if (ns > 0) {
        for (var i = 0; i < ns; i++) {
            HideLayers(layObj.layerSets[i])
        }
    }
}

// 現在開いているドキュメントを全て非表示
HideLayers(app.activeDocument);

레이어가 폴더인지 여부 결정


layer.typename === "ArtLayer"

레이어가 폴더이면 false이고 폴더가 아닌 경우 true입니다.

텍스트 입력 폼 첨부의 윈도우를 낸다



창을 내다



windowtest.jsx
win = new Window("dialog", "タイトル");
win.show();

다음과 유사한 창이 표시됩니다.

ESC 키로 닫습니다.

텍스트 입력 폼 첨부의 윈도우를 낸다



windowtest.jsx
win = new Window("dialog", "タイトル");
win.add("edittext", { width: 100, height: 20, x: 100, y: 100 }, "ここに入力");
win.show();

다음과 같은 창이 표시됩니다.


버튼을 추가하려면 첫 번째 인수에 "button", 레이블을 추가하려면 첫 번째 인수에 "statictext",
slider라면 "slider"를 입력합니다.

이것들은 "ScriptUI"라는 이름 같기 때문에 "jsx ScriptUI"라든지로 Google 검색하면 여러가지 나옵니다.

버튼이있는 창을 내고 버튼 클릭으로 코드를 실행하십시오.



windowtest.jsx
win = new Window("dialog", "タイトル");
okbtn = win.add("button", { width: 80, height: 25, x: 40, y: 25 }, "OK");

okbtn.onClick = function () {
    alert("OKボタンが押されました");
    win.close();
}
win.show();

버튼에 포커스를 올려



아래와 같이 3개의 버튼을 추가하여 Preview 버튼에 처음부터 포커스를 올리고 싶습니다.
okbtn = win.add("button", { width: 80, height: 25, x: 25, y: 25 }, "OK");
prbtn = win.add("button", { width: 80, height: 25, x: 115, y: 25 }, "Preview");
cnbtn = win.add("button", { width: 80, height: 25, x: 205, y: 25 }, "Cancel");

그럴 때는 아래와 같이 active에 true를 넣으면 OK
okbtn.active = false;
prbtn.active = true;
cnbtn.active = false;



기타



선택 대화 상자 표시



windowtest.jsx
folder = Folder.selectDialog("テキスト");



저장 대화상자 표시



windowtest.jsx
savename = File.saveDialog("保存するファイル名を入れてください");



프롬프트



windowtest.jsx
text = prompt("タイトル", "ここに入力");



참고로 한 사이트



PhotoShop의 자동 처리 스크립트 JSX를 작성할 때의 참고 링크를 정리해 둔다
h tp // w w. 1ft-세아바 s. jp/메모/2013/06/09/p

【Photoshop CS 자동화 작전】
h tp // w w. 오픈 spc2. rg/보오 k/P 호토쇼 pCS/

Photoshop에서의 웹 제작 효율을 향상시키는 「JSX」란?
htp : / / s와 c r. jp/아아 ry/p 호토쇼 pjsx/

좋은 웹페이지 즐겨찾기