이번 강좌에서는 스크립트를 이용하여 selection 을 만들어 보고 만들어진 selection 영역에 색상을 fill 하는 스크립트를 작성하여 보도록 하겠습니다. 단순한 기능이지만 알아두면 유용하게 사용될 수 있답니다.
GUI 를 하시는 분들 중에는 레이어의 영역을 가이드문서에 작성하기 위하여 별도의 레이어에 영역정보만 박스를 만들어서 컬러를 채워넣는 경우가 종종 있는데요. 이런 상황에 아주 유용하게 사용될 수 있을 듯 합니다.
먼저 이번에 사용할 개체는
- Document.Selction
- Selection.fill
이 두가지 요소 입니다.
스크립트를 이용하여 셀렉션을 만들어 줄때 주로 사용하는 방법은 바운드 박스 영역을 설정해 주는 방법입니다.
위와 같은 형태의 사각형 영역을 선택한다고 하면 네 점에 해당되는 각 좌표를 이용하여 바운드 박스를 생성해 주어야 하는데요.
배열 개체로 아래와 같이 입력이 되어야 합니다.
boundbox = [A, B, C, D, A]; // 다섯개의 점을 이용하여 박스를 만들어 주는 것이죠.
각 점은 [x, y] 의 형태로 구성된 좌표데이터가 입력이 되어야 합니다.
즉,
boundbox = [ [A_x,A_y] , [B-x, B-y] , [C_x, C_y] , [D_x, D_y] , [A_x, A_y] ] ;
와 같은 형태로 입력이 되면 됩니다.
임의의 좌표를 이용하여 셀렉션을 만들어보면 아래와 같습니다.
// 현재 활성화된 다큐먼트를 cDoc 에 저장
var cDoc = app.activeDocument;
// 기존 설정된 선택영역이 있는 경우 해제하여줌
cDoc.selection.deselect();
var cSelection = cDoc.selection.select([[10,10],[50,10],[50,30],[10,30],[10,10]]);
이런 방식으로 영역을 선택하는 것이 가능한데요.
약간의 코드 수정을 하면 좀더 쉽고 유연하게 선택영역을 만드는 것이 가능합니다.
지정된 좌표를 중심으로 지정한 반경만큼 선택하는 코드
// doc 는 선택영역을 생성할 도큐먼트를, pt는 중심 좌표를, Width 는 반경을 지정
function fill_rect(doc, pt, width)
{
var c = width*0.5;
doc.selection.deselect();
doc.selection.select([
[pt[0]-c,pt[1]-c],
[pt[0]+c,pt[1]-c],
[pt[0]+c,pt[1]+c],
[pt[0]-c,pt[1]+c],
[pt[0]-c,pt[1]-c]
]);
}
// 64,64 를 중심으로 가로세로 32 픽셀의 선택영역을 생성
fill_rect(app.activeDocument, [64,64], 32);
지정한 좌표를 기준으로 폭과 높이를 지정하여 선택영역을 생성하는 함수
// doc 는 선택영역을 생성할 도큐먼트를, pt는 중심 좌표를, Width 는 반경을 지정
function fn_fill_rect_byWidth_Height(doc, pt, width, height)
{
doc.selection.deselect();
doc.selection.select([
[pt[0] ,pt[1] ],
[pt[0]+width,pt[1] ],
[pt[0]+width,pt[1]+height],
[pt[0] ,pt[1]+height],
[pt[0] ,pt[1] ]
])
}
//[0,0]을 기준으로 가로 640, 시로 480 크기의 선택영역을 만들기
fn_fill_rect_byWidth_Height(app.activeDocument, [0,0], 640, 480);
이와 같이 바운드 박스 형식을 이용하여 선택영역을 만들때 입력되는 좌표의 값을 수정해주면 원하는 형태의 선택영역을 손쉽게 만들어 낼 수 있습니다. 본인이 늘 사용하는 방식, 본인 업무에 맞는 방식으로 코드를 작성하여 사용이 가능해 지겠죠.
어도비 사이트에 가시면 레퍼런스가 배포되어 있습니다. 어도비 사이트에서 배포되는 스크립트 레퍼런스에서 Selection 개체가 어떤 프라퍼티를 갖고 어떤 메소드를 갖는지 확인해 보시면 응용할 수 있는 요소가 아주 많다는 것을 알 수 있습니다.
다음번에 또 유용한 스크립트를 가지고 다시 포스트를 올리겠습니다.
뎃글, 공감 은 블로그 작성자에게 큰 힘이 된답니다. |
감사합니다.
스크립트를 이용하여 레이어의 컨텐츠 영역을 선택하고 싶다면?
2020/01/23 - [DEV/Adobe Script] - [포토샵스크립트] 레이어 컨텐츠 영역 선택하기
2020/04/02 - [DEV/Adobe Script] - [포토샵스크립트] color fill 하기
2020/02/19 - [DEV/Adobe Script] - [포토샵스크립트] 파일을 이미지로 저장하기 save option 설정
2020/02/14 - [DEV/Adobe Script] - [포토샵스크립트] 매직완드 기능 스크립트로 실행하기
'DEV > Adobe Script' 카테고리의 다른 글
[포토샵스크립트] 스크립트 단축키로 실행하기 (0) | 2019.09.20 |
---|---|
[포토샵스크립트] 현재 레이어 이미지를 중앙으로 이동시키기 (2) | 2019.09.19 |
[photoshop script] 이미지 내 특정 좌표의 컬러 구하기 (2) | 2019.09.03 |
[포토샵스크립트] 모든 레이어 자동저장 / 폴더 구조 포함 (5) | 2019.06.27 |
포토샵 스크립트 레퍼런스, 도움말 사용하기 (4) | 2019.06.12 |