読者です 読者をやめる 読者になる 読者になる

ごんれのラボ

iOS、Android、Adobe系ソフトの自動化スクリプトのことを書き連ねています。

レイヤーごとにJPEGを書き出す

お仕事でレイヤーの表示/非表示で作りわけたデータをJPEGに書き出すっていうのがあって場当たり的に書いたもの。

最初は手でやってたんだけどTwitterで「間違えたら嫌だからスクリプト書く」って意見があったので、それもそうだなーと思い直して、ちょっと書いたみたって感じ。

こんな仕事する人、いるのかな?

 
<仕様>

  • どのJPEGにも必要なオブジェクトは表示レイヤーに入れてある
  • レイヤーごとに必要なオブジェクトが格納されている
  • レイヤーの表示のオン/オフで書き出すJPEGを決める
  • JPEGの名前はレイヤー名から取得
  • エラー処理はすっとばす

 

デモ動画はこちら

 

--保存場所を決める
set filePath to choose folder with prompt "保存するフォルダを選択してください" as string

--ここからIllustratorの処理
tell application "Adobe Illustrator"
	activate
	set myDoc to document 1
	tell myDoc
		--非表示レイヤーをリスト化して変数へ
		set visibleFalseLayer_list to every layer whose visible is false
	end tell
	
	--非表示レイヤーの数だけ繰り返す
	repeat with a from 1 to count of visibleFalseLayer_list
		tell myDoc
			set currentLayer to item a of visibleFalseLayer_list --処理用に代入
			set visible of currentLayer to true --レイヤーを表示状態に
			set myLayerName to name of currentLayer
			set newFilePath to filePath & myLayerName & ".jpg" as string --保存ファイル名を代入
			
		end tell
		
		export myDoc to newFilePath as JPEG with options {class:JPEG export options, quality:100, vertical scaling:200.0, horizontal scaling:200.0, matte color:{red:255, green:255, blue:255}}
		--vertical scaling:200.0は書き出す倍率(vertical scaling:200.0は縦方向に200%)
		--quality:100はJPEGの品質(quality:100はダイアログの10の品質)
		--matte color:{red:255, green:255, blue:255}はRGBってことだと思う?
		
		tell myDoc
			set visible of currentLayer to false --再度非表示にする
		end tell
	end repeat
end tell

activate
display dialog ((count of visibleFalseLayer_list) as string) & "ファイル書き出しました"

 

ダウンロードは下記。

レイヤーごとにJPEG書き出し