フォトショップスクリプト – ベタ塗レイヤーの色情報を取得

function getSolidFillColor(){
	var ref = new ActionReference();
	ref.putEnumerated( charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
	var desc = executeActionGet(ref)
	var adjList = desc.getList(stringIDToTypeID('adjustment'));
	var adjDesc = adjList.getObjectValue(0);
	var colorDesc = adjDesc.getObjectValue(stringIDToTypeID('color'));
	var Colour = new SolidColor();
	Colour.rgb.red = colorDesc.getDouble(charIDToTypeID('Rd  '));
	Colour.rgb.green = colorDesc.getDouble(charIDToTypeID('Grn '));
	Colour.rgb.blue = colorDesc.getDouble(charIDToTypeID('Bl  '))
	return Colour;
}

アドビのフォーラムで偶然見つけました。
var color = getSolidFillColor() ;
alert( color.rgb.red );
等とすると選択されているベタ塗りレイヤーの色情報を取得できます。

 

フォトショップのスクリプトで一番困るのは、どんな関数が存在するのかわからないのと、
その関数に何を入れると何が帰ってくるのか分からないことです。
どこかに情報があるのでしょうか?いつもそれで困ります。

 

しかも不思議なことに、それがわからないからアラートを出すようにして探ると、
その変数が使用される前にアラートを出すようにしても、その変数が使用されるところでアラートが出なくなる。
なので、使っている変数を順番にアラートに出すようにすると、どこで躓いているのかが分かる。
という意味の分からない仕様です。
自分が理解していないだけ、というのももちろんありますが、腑に落ちない。
そもそも疑っている。

 

フォトショップのCS6がアナウンスされています。
もっとスクリプトが使いやすくなっていないだろうか。と淡い期待を抱きますが、恐らく無理でしょう。
しかし、ともかくも長年の疑問が晴れました。公開してくれた人ありがとうございます。

コメントする

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トラックバックする

トラックバック用URL:

アニメーションが親切に解説されております

レンダリング、ライティングの基本が分かります

図版が見やすい美術解剖書です