jsx로 레이어 이름으로 저장
머리
500~1000개의 이미지 데이터 생성 작업을 자산이나 액션에서는 처리할 수 없는 내용 때문에 수작업을 생각했을 때・・・
「이대로는 끝나지 않아」!!(@_@;
라고 생각해 쓴 jsx로 배운 일의 메모입니다.
샘플 PSD에 관하여
동일한 배경에 레이어를 바꾸어 여러 종류의 이미지 데이터를 생성합니다.
오징어, psd의 내용입니다.
이 psd로부터 "Other_01~05"+ "_10~100000"이라는 명명 규칙으로 이하와 같은 이름으로 GIF 화상을 합계 40 파일 정도 생성한다.
동일한 배경에 레이어를 바꾸어 여러 종류의 이미지 데이터를 생성합니다.
오징어, psd의 내용입니다.
이 psd로부터 "Other_01~05"+ "_10~100000"이라는 명명 규칙으로 이하와 같은 이름으로 GIF 화상을 합계 40 파일 정도 생성한다.
"Other_01_100000.gif""Other_01_50000.gif""Other_01_10000.gif""Other_01_5000.gif""Other_01_1000.gif""Other_01_100.gif""Other_01_00.gif
"Other_02_100000.gif""Other_02_50000.gif""Other_02_10000.gif""Other_02_5000.gif""Other_02_1000.gif""Other_02_100.gif""Other_02_50.gif
"Other_03_100000.gif""Other_03_50000.gif""Other_03_10000.gif""Other_03_5000.gif""Other_03_1000.gif""Other_03_100.gif""Other_03_90.5
생성하는 모든 이미지에 필요한 배경 레이어에는 "base"라고 붙였습니다.
또한 숫자의 종류별로 예를 들면, "*_50.gif"의 각 화상에서는 "Other_01"~"Other_05"의 레이어분, "50"이라는 문자의 레이어와 "50_waku"의 테두리의 레이어가 붙는, "Other_01~ 05"의 레이어로 5 종류의 화상을 내보내는 동작을 생각합니다.
이하, 완성 화상의 폴더내의 스쿠쇼.
절차
처리 내용 파악
이 단계는 script를 쓰면서 생각하고 있는 처리의 순서를 구체적으로 이미지하기 때문에, 일상적인 경험이 도움이 됩니다.
필요한 처리 선택
이번에는 이전 단계에서 올린 처리를 다음과 같이 생각했습니다.
1 PSD에서 필요한 레이어 표시
2 적절한 압축 형식 선택(옵션을 지정할 수 있음)
3 명명 규칙이 있고 그에 따라 이미지 이름을 지정하여 저장
처리 내용을 떨어뜨리다
실제로 설정한 (지금부터 하는) 함수등의 지정은 어쩌면, 구체적으로 스크립트에 떨어뜨립니다.
【1step】필요한 카테고리분의 for문을 준비
↓
【2step】 레이어 모두 보기 for 문을 준비
↓
【3step】레이어의 수만큼 레이어의 내용을 보기 때문에, 한층 더 레이어의 수의 횟수 볼 수 있는 for문으로 둘러싼다
↓
【4step】 보존의 타이밍은 1주위 레이어를 돌고 돌린 후에 실행
JSX
function getLayerObj(){
//レイヤーの情報を整理する関数を準備
var layers = activeDocument.layers;
var layerCount = 0;
var layerMax = layers.length;
・
・
・
・
//保存形式の準備、減色などの調節
var gifOpt = new GIFSaveOptions();
gifOpt.colors = 64;
gifOpt.dither = Dither.NONE;
gifOpt.matte = MatteType.WHITE;
・
・
・
/*------------------------------------------------------------------------
【1step】
必要なカテゴリ分のfor文を用意
・保存する種類分の回数を回すfor文
・ここではサンプルpsdの 100000,50000,10000,5000,1000,100,50,10 を種類として、
すべてのレイヤーを解析する回数を8回指定。
------------------------------------------------------------------------*/
for (var m = 0 ; m < 8; m++){
wakuLayer = sizeNum[m] + "_waku";
/*------------------------------------------------------------------------
【3step】
レイヤーの数だけレイヤーの内容を見るので、
さらにレイヤーの数の回数見る事が出来るfor文で囲う
------------------------------------------------------------------------*/
for(var n = 0; n<layerMax; n++){
/*------------------------------------------------------------------------
【2step】
レイヤー全てを見るfor文を用意
------------------------------------------------------------------------*/
for(var i = 0; i<layerMax; i++){
//表示させるレイヤーをif文でふるい分け
if(i == n){
//レイヤーの名前取得
fName = layers[i].name;
//保存するパスの生成。ここで、ファイル名は命名規則にそぐうものを生成させるようにする。
fileGifObj = new File( path + fName + "_" + sizeNum[m] +".gif" );
//表示させるレイヤーを変数に格納
visibleLayer03 = activeDocument.layers[i];
・
・
・
・
・
・
}else{
//表示させないレイヤーにはそのまま非表示のBooleanを渡す
activeDocument.layers[i].visible = false;
}
}
//全部のレイヤーから保存しないレイヤーの場合はフラグを立てる
if(fName == "base"){
noPrintLayerFlag = true;
}
for (var l = 0 ; l < 8; l++){
・
・
・
}
/*------------------------------------------------------------------------
【4step】
保存のタイミングは1周りレイヤーを見て回った後に実行
・レイヤーの名前が保存対象外だったら保存しない。"base"とかです。
------------------------------------------------------------------------*/
if(!noPrintLayerFlag){
//レイヤーを表示Boolean。保存メゾットでデータ格納する
visibleLayer01.visible = true;
visibleLayer02.visible = true;
visibleLayer03.visible = true;
visibleLayer04.visible = true;
activeDocument.saveAs( fileGifObj, gifOpt, true, Extension.LOWERCASE);
}else{
//フラグを戻す
noPrintLayerFlag = false;
}
}
}
alert("おわったよ!");
}
//スクリプトを実行
getLayerObj();
실제 소스는 여기
htps : // 기 st. Giteubuse r 콘텐트 t. 이 m / 토모카 / 아 c0 아 2 7db377043 아 f83 / 등 w / 69073871 dcdbf60cb714381 예 b04b6b6cdf96f8 / 게 t ぁ ぇ ろ bj. jsx
후기
jsx 덕분에 그렇게 고생하지 않고 내보낼 수있었습니다. 수가 많으면 대기 시간이 늘어나는 것이 넥입니다만, 확실히 화상을 생성해 주기 때문에 누설도 적어집니다. 붙이는 jsx가 편리하다고 생각했다.
이 jsx는 범용성이 낮기 때문에, 다음 쓸 때는 그 때의 작업 뿐만이 아니라 범용성이 높은 jsx가 걸도록(듯이) 노력한다.
Reference
이 문제에 관하여(jsx로 레이어 이름으로 저장), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tomoka/items/b7975fad73c28c4506b6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(jsx로 레이어 이름으로 저장), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tomoka/items/b7975fad73c28c4506b6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)