月曜日, 2月 19, 2024

JavaScriptでAI遊び 17 
選択したオブジェクトを指定数で縮小拡大(2)

選択したオブジェクトを指定数(mm)で縮小拡大します。今回もプロパティーで処理出来るので必要は無いと思いますが・・・

// アクティブなドキュメントを取得
var doc = app.activeDocument;
// ユーザーに縮小する高さを入力してもらう(mm単位)
var newHeight_mm = parseFloat(prompt
("新しい高さを入力(mm単位)", "10"));
// mmをポイントに変換する関数
function mmToPoints(mm) {
return mm * 2.83465; // 1mm = 2.83465ポイント
}
// 選択されたオブジェクトを取得
var selection = doc.selection;
// 選択されたオブジェクトの存在を確認
if (selection.length > 0) {
// ループを使用し選択したオブジェクトの高さを変更
for (var i = 0; i < selection.length; i++) {
// 選択されたオブジェクトの高さを縮小
// 現在の高さを取得
var currentHeight = selection[i].height;
// ユーザー入力のmmをポイントに変換
var newHeight_points = mmToPoints(newHeight_mm);
// 倍率を計算
var scaleFactor = newHeight_points / currentHeight;
// オブジェクトの比率を保って縮小
selection[i].resize(scaleFactor * 100, scaleFactor *
100, true, true, true, true, 0);
}
} else {
alert("オブジェクトが選択されていません。");
}


任意のオブジェクトを選択し・・・


縮小拡大したい高さのmm数を入力すれば・・・

中心位置(図形のデフォルト)で比率を保ったままサイズ変更されます。