今回はPhotoshopのレイヤーのラベルカラーを設定するスクリプトです。以下のスクリプトは、第一階層にあるテキストレイヤーのラベルを赤色にします。
呼び出す時にsetLayerColor("赤色");として色の名前を指定していますが、このスクリプトで使用している関数setLayerColorでは、以下の色名を指定することができます。例えば黄色なら「イエロー」「黄色」「黄」のいずれかを指定すればレイヤーのラベルの色を設定できます。
-------
なし 無色
レッド 赤色 赤
オレンジ 橙色 橙
イエロー 黄色 黄
グリーン 緑色 緑
ブルー 青色 青
バイオレット 紫色 紫
グレー 灰色 灰
-------
// 第一階層のテキストレイヤーを赤色にする
var doc = app.activeDocument;
for(var i=0; i<doc.artLayers.length; i++){
if (doc.artLayers[i].kind == LayerKind.TEXT){
doc.activeLayer = doc.artLayers[i];
setLayerColor("赤色");
}
}
// ラベルカラーを設定する
function setLayerColor(colorName){
var list = [
{ name : "なし", value: "None" },
{ name : "レッド", value: "Rd " },
{ name : "オレンジ", value: "Orng" },
{ name : "イエロー", value: "Ylw " },
{ name : "グリーン", value: "Grn " },
{ name : "ブルー", value: "Bl " },
{ name : "バイオレット", value: "Vlt " },
{ name : "グレー", value: "Gry " },
{ name : "無色", value: "None" },
{ name : "赤", value: "Rd " },
{ name : "橙", value: "Orng" },
{ name : "黄", value: "Ylw " },
{ name : "緑", value: "Grn " },
{ name : "青", value: "Bl " },
{ name : "紫", value: "Vlt " },
{ name : "灰", value: "Gry " },
{ name : "赤色", value: "Rd " },
{ name : "橙色", value: "Orng" },
{ name : "黄色", value: "Ylw " },
{ name : "緑色", value: "Grn " },
{ name : "青色", value: "Bl " },
{ name : "紫色", value: "Vlt " },
{ name : "灰色", value: "Gry " }
];
var cName = "None"; // 無色に設定
for(var i=0; i<list.length; i++){
if (list[i].name == colorName){
cName = list[i].value;
break;
}
}
var idsetd = charIDToTypeID( "setd" );
var desc20 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
var ref13 = new ActionReference();
var idLyr = charIDToTypeID( "Lyr " );
var idOrdn = charIDToTypeID( "Ordn" );
var idTrgt = charIDToTypeID( "Trgt" );
ref13.putEnumerated( idLyr, idOrdn, idTrgt );
desc20.putReference( idnull, ref13 );
var idT = charIDToTypeID( "T " );
var desc21 = new ActionDescriptor();
var idClr = charIDToTypeID( "Clr " );
var idClr = charIDToTypeID( "Clr " );
var idRd = charIDToTypeID( cName ); // 色を設定
desc21.putEnumerated( idClr, idClr, idRd );
var idLyr = charIDToTypeID( "Lyr " );
desc20.putObject( idT, idLyr, desc21 );
executeAction( idsetd, desc20, DialogModes.NO );
}
ラベルカラーを設定することができれば、いろいろと便利なこともあります。なお、このスクリプトは存在しないレイヤー名や、何もレイヤーが選択されていないとエラーになるので注意してください。
【古籏一浩】openspc@alpha.ocn.ne.jp
< http://www.openspc2.org/
>
4月24日、Photoshop自動化基本編が発売されます。Kindle版、紙版(オンデマンド印刷)同時に発売となってます。
今回掲載したようなネタもあります。基本的な命令の解説サンプルとサンプルコードで構成されています。まあ、逆引きリファレンスみたいな感じです。基本編なので複雑な処理や実例は載ってません。売れれば入門編とか応用編・実用編が出たりするかもしれませんが......。
・Photoshop自動化基本編
< http://www.amazon.co.jp/dp/B00W952JQW/
>
イングレス、ようやくLevel 9になりました。田舎でもポータル増えたにせよ、圧倒的にポータル少ないのでレベルアップには時間かかります。
・Excel 2013使い方辞典
< http://www.openspc2.org/reibun/Excel2013/
>
・Adobe JavaScriptリファレンス
< http://www.amazon.co.jp/dp/B00FZEK6J6/
>
・Illustrator自動化基本編
< http://www.amazon.co.jp/dp/B00R5MZ1PA
>
・ExtendScript Toolkit(ESTK)基本編
< http://www.amazon.co.jp/dp/B00JUBQKKY/
>
・データビジュアライゼーションのためのD3.js徹底入門
< http://www.amazon.co.jp/dp/4797368861
>
・4K/ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/
>
・JavaScript逆引きハンドブック
< http://www.amazon.co.jp/dp/4863541082
>
・クリエイター手抜きプロジェクト
< http://www.openspc2.org/projectX/
>
・Adobe Illustrator CS3 + JavaScript 自動化サンプル集
< https://www.ddc.co.jp/estore/cgi/item/start.cgi?m=DetailViewer&record_id=243
>
吉田印刷所の「印刷の泉」でも購入できるようになりました。