イラストレーターのオブジェクトをピクセルに揃えるスクリプト
イラレTIPS:イラレでスライスがズレないようにする=イラレでアンチエイリアスをコントロールするにて紹介されてるWEBに画像を書き出す際にピクセルに揃える方法は知っているととても便利ですね。
でも、最初からそうしてればいいんだけど、途中から気づいたり既にある物をピクセルに揃える時はどうするの?という時に使うスクリプトです。
最新版のイラストレーターではそういうのも解消されているとかいなとか?
スクリプト自体は随分前に書いたものです。
今でも、適当に作ったものを後からWEB用に書き出す時に、たまに使います。需要があればどうぞ。
四角を綺麗にピクセルに揃えるのに便利です。
ダウンロード
main(); function main(){ if (documents.length<1) return; var s = activeDocument.selection; if (!(s instanceof Array) || s.length<1) return; var sp = extractPathes(s,1); if(sp.length<1) return; for(i in sp){ p = sp[i].pathPoints; st = 0; if(sp[i].stroked){ sp[i].strokeWidth= Math.round(sp[i].strokeWidth); st = sp[i].strokeWidth; } if(p.length <30){ for(j=0;j<p.length;j++){ //alert(p[1].anchor[1]); p[j].rightDirection = p[j].anchor === p[j].rightDirectiosn ? rounder(p[j].anchor) : rounder(p[j].rightDirection); p[j].leftDirection = p[j].anchor == p[j].leftDirection ? rounder(p[j].anchor) : rounder(p[j].leftDirection); p[j].anchor = rounder(p[j].anchor); if(sp[i].stroked){ p[j].anchor = [p[j].anchor[0]+st/2,p[j].anchor[1]+st/2]; p[j].leftDirection = [p[j].leftDirection[0]+st/2,p[j].leftDirection[1]+st/2]; p[j].rightDirection = [p[j].rightDirection[0]+st/2,p[j].rightDirection[1]+st/2]; } } } } } function rounder(x){ return [Math.round(x[0]),Math.round(x[1])]; } // -------------------------------------- function extractPathes(s, pp_length_limit){ var ary = []; for(var i=0; i<s.length; i++){ if(s[i].typename=="PathItem"){ if(pp_length_limit && s[i].pathPoints.length <= pp_length_limit) continue; ary.push(s[i]); } else if(s[i].typename=="GroupItem"){ ary = ary.concat(extractPathes(s[i].pageItems)); } else if(s[i].typename=="CompoundPathItem"){ ary = ary.concat(extractPathes(s[i].pathItems)); } } return ary; }