リンクをクリップボードにコピー
コピー完了
お世話になります。
ドキュメントに特色スウォッチが存在していて、
それのグローバルをオフにし、プロセスカラーのK100に置き換えるスクリプトを作りたいです。
(function() {
if(app.documents.length <= 0) {return ;}
var doc = app.documents[0] ;
var deleteCount = 0 ;
var spotColors = doc.spots ;
var currentColor ;
for(var i = spotColors.length - 1 ; i >= 0 ; i--) {
currentColor = spotColors[i] ;
if(currentColor.colorType == ColorModel.SPOT) {
currentColor.color = setColor(0,0,0,100);
currentColor.colorType = ColorModel.PROCESS ;
deleteCount++ ;
}
}
function setColor(c, m, y, k)
{
var tmpColor = new CMYKColor();
tmpColor.cyan = c;
tmpColor.magenta = m;
tmpColor.yellow = y;
tmpColor.key = k;
return tmpColor;
}
})() ;
上記を実行した結果、なぜか白に置き換わってしまいました。
グローバルをオフにする方法は調べてみたのですが、見つからず・・・。
何かいい方法はありませんでしょうか。
宜しくお願いいたします。
これはSpotがカラーを示すオブジェクトだからですね。swatchのcolorプロパティに設定されて機能するものですから意図した動作にしよと思うならswatchに対する処理を考える必要があります。
var bk = new CMYKColor();
bk.cyan = 0;
bk.magenta = 0;
bk.yellow = 0;
bk.black = 100;
var sw = app.activeDocument.swatches;
for (var i=0;i<sw.length;i++) if(sw[i].color.typename=="SpotColor")sw[i].color = bk;
で、こうなります。
リンクをクリップボードにコピー
コピー完了
すみません。
CMYKの
tmpColor.key = k;
は
tmpColor.black = k;
でいいんですね。
ここを変更したら黒に置き換えられました!
グローバルをオフにする方法が知りたいです。
リンクをクリップボードにコピー
コピー完了
これはSpotがカラーを示すオブジェクトだからですね。swatchのcolorプロパティに設定されて機能するものですから意図した動作にしよと思うならswatchに対する処理を考える必要があります。
var bk = new CMYKColor();
bk.cyan = 0;
bk.magenta = 0;
bk.yellow = 0;
bk.black = 100;
var sw = app.activeDocument.swatches;
for (var i=0;i<sw.length;i++) if(sw[i].color.typename=="SpotColor")sw[i].color = bk;
で、こうなります。
リンクをクリップボードにコピー
コピー完了
出来ました!
ありがとうございます。