水曜日, 8月 21, 2024

JavaScriptでAI遊び 22 
選択オブジェクトを指定サイズに変形

選択オブジェクトを指定サイズに変形するスクリプトです。サイズを入力後に単位を指定します。


if (app.documents.length > 0 &&
app.activeDocument.selection.length > 0) {
var selection = app.activeDocument.selection;

// プロンプトで新しい幅と高さを入力させる
var newWidth =
prompt("新しい幅を入力してください:", "100");
var newHeight =
prompt("新しい高さを入力してください:", "100");

// プロンプトで単位を入力させる
var unit =
prompt("単位を入力してください(mm, cm, pt):", "mm");

if (newWidth !== null &&
newHeight !== null && unit !== null) {
newWidth = parseFloat(newWidth);
newHeight = parseFloat(newHeight);

// 単位変換用の係数を定義
var unitConversion = {
"mm": 2.83465,
"cm": 28.3465,
"pt": 1
};

// 入力された単位が有効か確認
if (!isNaN(newWidth) &&
!isNaN(newHeight) &&
unitConversion.hasOwnProperty(unit)) {
// 指定された単位をポイントに変換
var conversionFactor = unitConversion[unit];
var newWidthPT = newWidth * conversionFactor;
var newHeightPT = newHeight * conversionFactor;

// 選択された各オブジェクトのサイズを変更
for (var i = 0; i < selection.length; i++) {
var obj = selection[i];
obj.width = newWidthPT;
obj.height = newHeightPT;
}
alert("サイズを変更しました。\n新しいサイズ: 幅 " +
newWidth + " " + unit + ", 高さ " +
newHeight + " " + unit);
} else {
alert("有効な数値と単位を入力してください。");
}
} else {
alert("サイズ変更がキャンセルされました。");
}
} else {
alert("オブジェクトを選択してください。");
}

単純図形ではないオブジェクトの場合はグループ化下から処理します。

実行すると、最初に幅を指定し・・・

次ぎに、高さを指定・・・

最後に単位を指定すれば・・・

指定サイズに変形されます。