おひさしぶりです。
今回ある方よりアドバイスをいただいたので
以前に作ったオブジェクトのサイズを揃えるスクリプトを改良して
選択したオブジェクトを縦横比は固定したまま一番大きいオブジェクトに揃えるというスクリプトを作ってみました。
ダイアログボックスでタテ規準かヨコ規準かを選べます。
とりあえずはコードのみ、、、
var dia = new Window("dialog", "最大オブジェクトに揃える", [0,0,250,140]);
dia.pane1 = dia.add("panel",[5,25,240,90],"サイズの基準");
dia.radi1 = dia.pane1.add("radiobutton",[10,10,170,25],"最大タテ幅に揃える");
dia.radi2 = dia.pane1.add("radiobutton",[10,35,170,50],"最大ヨコ幅に揃える");
dia.bot1 = dia.add("button",[10,100,100,130],"実行", { name:"ok"});
dia.radi1.value=true;
dia.center();
dia.show();
sel = activeDocument.selection;
var Tmax=0;
var Ymax=0;
for (i=0; i<sel.length; i++)
{
if(Tmax<sel[i].height){Tmax=sel[i].height}
if(Ymax<sel[i].width){Ymax=sel[i].width}
}
for (i=0; i<sel.length; i++)
{
if(dia.radi1.value){
bairitu=Tmax/sel[i].height*100;
}else{
bairitu=Ymax/sel[i].width*100;
}
sel[i].resize(bairitu, bairitu,true,true,true,true,bairitu,Transformation.CENTER);
}
遅くなりましたがマスク対応しました!!!
比較しやすいように元のコードも残しておきます
下のコードがマスク対応したものです。
var dia = new Window("dialog", "最大オブジェクトに揃える", [0,0,250,140]);
dia.pane1 = dia.add("panel",[5,25,240,90],"サイズの基準");
dia.radi1 = dia.pane1.add("radiobutton",[10,10,170,25],"最大タテ幅に揃える");
dia.radi2 = dia.pane1.add("radiobutton",[10,35,170,50],"最大ヨコ幅に揃える");
dia.bot1 = dia.add("button",[10,100,100,130],"実行", { name:"ok"});
dia.radi1.value=true;
dia.center();
dia.show();
sel = activeDocument.selection;
var Tmax=0;
var Ymax=0;
var selSize=[];
for (i=0; i<sel.length; i++)
{
if (sel[i].clipped) {
selSize[i] = sel[i].pageItems[0];
} else {
selSize[i] = sel[i];
}
if(Tmax<selSize[i].height){Tmax=selSize[i].height}
if(Ymax<selSize[i].width){Ymax=selSize[i].width}
}
for (i=0; i<sel.length; i++)
{
if(dia.radi1.value){
bairitu=Tmax/selSize[i].height*100;
}else{
bairitu=Ymax/selSize[i].width*100;
}
sel[i].resize(bairitu, bairitu,true,true,true,true,bairitu,Transformation.CENTER);
}
コメント
使わせていただきます
ありがとうございます!
お役に立てればうれしいです。
はじめまして。
このスクリプト、すごく便利でいつも使わせて頂いています!
このスクリプトを元に、2つほどリクエストがありまして…
1.基準となる最大オブジェクトがマスクオブジェクト場合、現状だとマスク内のオブジェクトの最大サイズを基準に変形されると思うのですが、これをマスクのサイズを基準に変形されるようにしたいのですが、可能でしょうか?
2.上記1同様、マスクのサイズを基準として、最大ではなく、最小オブジェクトに大きさを揃えるスクリプトもあればいいなと思ったのですが、可能でしょうか?
誠に勝手なお願いでございますが、ご検討の程よろしくお願い致します。
イタリーさま
9ヶ月近く放置してしまいました。
大変すみませんでした!!
マスク対応させていただきましたのでよかったら利用して下さい。
どうかお許しください。