« 2010年10月 | メイン | 2010年12月 »

●Photoshopで不要なチャンネルを削除する2

2010年11月 7日    

昨日はAppleScriptでチャンネルを削除するスクリプトの記事を書きましたが
Windows版でも使えるjavascriptでの方法を調べたので書き残しておきます

まず アルファチャンネルを全て削除するスクリプト
テキストエディッタで

activeDocument.channels.removeAll();
の一行を書いたテキストファイルを作って
「アルファチャンネル全削除.jsx」といった感じに 拡張子.jsxで保存
Photoshopの ファイル>スクリプト>参照... でそのファイルを選択するだけ
画像の色を構成するもの以外のアルファチャンネルが全て削除されます
(RGBモードのファイルなら RGBのチャンネル以外と言った感じ)
ファイルの受け渡しでアルファチャンネルは消してしまたい時に使えるのではないでしょうか

続けて Photoshopは通常操作で複数のチャンネルを削除できないので
選択したチャンネルのみを消すスクリプトも

ch = activeDocument.activeChannels;
for (i = 0; i < ch.length;i++){
	if (ch[i].kind != ChannelType.COMPONENT){ch[i].remove();}
	}
上と同様に色を構成するチャンネルは消さないようにはしてあります

ちなみにフォトショップのスクリプトは
ファイルを選択して実行する行程をアクションに記録する事もできます
スクリプトフォルダ に保存することで 
スクリプトのメニューに表示されるようにすることもできます
(MacのCS3ならアプリケーション/Adobe Photoshop CS3/プリセット/スクリプト)
さらにアクションに記録しておけば
自動処理>バッチ... で複数のファイルを一括処理してしまうこともできるでしょうね

いずれのスクリプトも PhotoshopCS以降が対象です

●Photoshopで不要なチャンネルを削除する

2010年11月 6日    

ちょっと用あって10枚以上のアルファチャンネルのあるファイルの
チャンネルを削除する用があったのでスクリプト書いてみた

数行だけれど必要な人は居るかも

AppleScriptなのでMac専用だけど
需要あったらWindowsでも使えるものを作るかも

tell application "Adobe Photoshop CS3"
	activate
	--doc duplicate current document
	set a to count (channels of current document)
	if a > 3 then
		repeat a - 3 times
			delete channel 4 of current document
		end repeat
	end if
end tell


ちなみに3行目のdoc duplicate current documentは

元のドキュメントを不用意にいじらないようにするために複製で作業するための命令

必要ならば--を削除すると機能します