초보자가 포토샵 스크립트(.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.jsxfunction 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.jsxwin = new Window("dialog", "タイトル");
win.show();
다음과 유사한 창이 표시됩니다.
ESC 키로 닫습니다.
텍스트 입력 폼 첨부의 윈도우를 낸다
windowtest.jsxwin = 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.jsxwin = 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.jsxfolder = Folder.selectDialog("テキスト");
저장 대화상자 표시
windowtest.jsxsavename = File.saveDialog("保存するファイル名を入れてください");
프롬프트
windowtest.jsxtext = 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/
Reference
이 문제에 관하여(초보자가 포토샵 스크립트(.jsx)를 만들어 보아 얻은 지식·노하우 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/r-ngtm/items/65f26b1f782f72b18d2a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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.jsxfunction 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.jsxwin = new Window("dialog", "タイトル");
win.show();
다음과 유사한 창이 표시됩니다.
ESC 키로 닫습니다.
텍스트 입력 폼 첨부의 윈도우를 낸다
windowtest.jsxwin = 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.jsxwin = 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.jsxfolder = Folder.selectDialog("テキスト");
저장 대화상자 표시
windowtest.jsxsavename = File.saveDialog("保存するファイル名を入れてください");
프롬프트
windowtest.jsxtext = 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/
Reference
이 문제에 관하여(초보자가 포토샵 스크립트(.jsx)를 만들어 보아 얻은 지식·노하우 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/r-ngtm/items/65f26b1f782f72b18d2a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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.jsxfunction 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.jsxwin = new Window("dialog", "タイトル");
win.show();
다음과 유사한 창이 표시됩니다.
ESC 키로 닫습니다.
텍스트 입력 폼 첨부의 윈도우를 낸다
windowtest.jsxwin = 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.jsxwin = 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.jsxfolder = Folder.selectDialog("テキスト");
저장 대화상자 표시
windowtest.jsxsavename = File.saveDialog("保存するファイル名を入れてください");
프롬프트
windowtest.jsxtext = 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/
Reference
이 문제에 관하여(초보자가 포토샵 스크립트(.jsx)를 만들어 보아 얻은 지식·노하우 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/r-ngtm/items/65f26b1f782f72b18d2a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
var copiedDoc = app.activeDocument.duplicate();
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.jsxwin = new Window("dialog", "タイトル");
win.show();
다음과 유사한 창이 표시됩니다.
ESC 키로 닫습니다.
텍스트 입력 폼 첨부의 윈도우를 낸다
windowtest.jsxwin = 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.jsxwin = 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.jsxfolder = Folder.selectDialog("テキスト");
저장 대화상자 표시
windowtest.jsxsavename = File.saveDialog("保存するファイル名を入れてください");
프롬프트
windowtest.jsxtext = 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/
Reference
이 문제에 관하여(초보자가 포토샵 스크립트(.jsx)를 만들어 보아 얻은 지식·노하우 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/r-ngtm/items/65f26b1f782f72b18d2a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
win = new Window("dialog", "タイトル");
win.show();
win = new Window("dialog", "タイトル");
win.add("edittext", { width: 100, height: 20, x: 100, y: 100 }, "ここに入力");
win.show();
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();
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");
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/
Reference
이 문제에 관하여(초보자가 포토샵 스크립트(.jsx)를 만들어 보아 얻은 지식·노하우 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/r-ngtm/items/65f26b1f782f72b18d2a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(초보자가 포토샵 스크립트(.jsx)를 만들어 보아 얻은 지식·노하우 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/r-ngtm/items/65f26b1f782f72b18d2a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)