イラストレータ10とCS以降での色の扱い
10の場合はcolorオブジェクトがあってその子として色空間のオブジェクトがある。
もう10はインストールしていないので次のサンプルが動くかどうかわからないが、塗りのカラーの取得は次の通り。
fc =activeDocument. pathItems[0].fillColor.color;
switch ( fc ){
case ColorType.CMYK:
oCyan = fc.CMYKColor.cyan;
oMagenta = fc.CMYKColor.magenta;
oYellow = fc.CMYKColor.yellow;
oBlack = fc.CMYKColor.black;
break;
case ColorType.RGB:
//RGB時の値の取得
break;
case ColorType.GRAY:
//グレースケール時の値の取得
break;
case ColorType.SPOT:
//スポットカラー時の処理
break;
case ColorType.GRADIENT:
//グラデーション時の処理
break;
case ColorType.PATTERN:
//パターン時の処理
break;
case ColorType.NONE:
//塗りなしのときは何もしない
}
CS以降ではcolorオブジェクトがなくなった。上記のサンプルは次のようになる。ただし書類設定がCMYKの場合RGBColorとは返してくれなかった(CMYKColorとして返した)。
fc = activeDocument.pathItems[0].fillColor
switch (fc.constructor.name){
case "CMYKColor":
oCyan = fc.cyan;
oMagenta = fc.magenta;
oYellow = fc.yellow;
oBlack = fc.yellow;
break;
case "RGBColor":
//RGB時の値の取得
break;
case "GrayColor":
//グレースケール時の値の取得
break;
case "SpotColor":
//スポットカラー時の処理
break;
case "GradientColor":
//グラデーション時の処理
break;
case "PatternColor":
//パターン時の処理
break;
case "NoColor":
//塗りなしのときは何もしない
}
塗り無しの場合、GrayColorが返って来た。時間があったら調べておこう。