画像編集のスクリプト作成に挑戦してみた(Illustrator)


杠です。今回はIllustratorで行っている画像の編集操作をスクリプト化してみた話です。

同じ操作を繰り返すようなことはできるだけ簡略化させたいですよね。Illustratorは、JavaScriptで記述したスクリプトを追加して単純な操作や何度も繰り返すような処理を簡単にできます。

作成したスクリプト

Illustratorで決まったサイズの画像を作成する際、これまでは画像の縦・横サイズが基準のサイズ内に収まっているか目視して変更していました。頻繁に発生する作業ではないのですが、「基準のサイズは何pxだったけ?」と手順を確認したり、基準内のサイズに収まるようにサイズを変更するのが手間だと感じていて今回スクリプトを作成してみました。

スクリプトの内容

縦と横のサイズを指定し、横のサイズを基準としたとき、縦のサイズが指定したサイズを超えた場合は縦のサイズを基準としてリサイズし、超えなかった場合は横のサイズを基準としてリサイズします。

(例)縦を250px、横を500pxで指定

var dialog = new Window("dialog", "サイズを変更", [0,0,280,180]);
dialog.add ("statictext",[20,20,70,40], "ヨコ");
dialog.wSize = dialog.add("edittext",[70,20,150,40],"596");
dialog.add ("statictext",[20,60,70,80], "タテが");
dialog.hSize = dialog.add("edittext",[70,60,150,80],"366");
dialog.add ("statictext",[20,80,250,100], "より大きい場合は、タテを基準にする");

dialog.bot1 = dialog.add("button",[20,140,100,170],"実行", { name:"ok"});
dialog.center();
dialog.show();

selObj = app.activeDocument.selection;
var objH = selObj[0].height;
var objW = selObj[0].width;
var kijunH = (dialog.hSize.text/objH)*100;
var kijunW = (dialog.wSize.text/objW)*100;

if (objH > dialog.hSize.text){
  selObj[0].resize(kijunH, kijunH,true,true,true,true,kijunH,Transformation.CENTER);
} else {
  selObj[0].resize(kijunW, kijunW,true,true,true,true,kijunW,Transformation.CENTER);
}

スクリプトの作成から実行

Illustrator 2021・MacOSの場合、次の手順で簡単に自分で作成したスクリプト実行できます。

前提条件

手順

  1. 上記スクリプトを記述したjsxを サイズ変更.jsx など適当なファイル名で作成
  2. Adobe Illustrator 2021 > Presets > jp_JP > スクリプトに1で作成したファイルを追加
  3. 1つの画像ファイルをIllustratorを開く
  4. 画像を選択した状態でファイル > スクリプトを選択
  5. タテ・ヨコの値を指定するダイアログが表示されるので値を設定し、実行をクリック

    タテ・ヨコにデフォルトの値を設定していますが、変更して実行できます。

参考にしたサイト

英語で書かれているドキュメントが多く、スクリプトの作成に時間がかかりました。メソッドやプロパティの情報は下記のサイトをサイトを参考にしました。

その他特に参考になったのは、以下のようにスクリプトを作成し、公開されている個人サイトです。pxの単位でサイズを変更する際の処理を参考にしました。

さいごに

スクリプトは今回紹介したように自分で作成できますが、ネットではダウンロードして利用できるスクリプトも公開されています。検索してみると意外と自分の要望に近いスクリプトが見つかるかもしれません。

今回作成したスクリプトは1つのアクティブな(選択されている)画像のサイズを変更するというちょっとした処理でしたが、いずれは編集した画像を書き出すまでを自動化して作業がもっと楽になるようなスクリプトを作成したいと思っています!

こちらの記事もオススメです!
スニペットツールで定型文を素早くペースト!私がよく使う定型文(スニペット)を紹介
何度も検索してコピペするような文章は定型文として登録しておくのがおすすめです。
サービス障害対応訓練を行いました
障害が発生したものとして擬似的に対応を進めるサービス障害対応訓練を行いました。
RubyKaigi Takeout 2021(オンライン)を視聴した感想
「RubyKaigi Takeout 2021」を視聴し、気になった話題について感想を書きました。やっぱりRubyは楽しい!
通信制大学を卒業しました
通信制大学を卒業。会社の学費補助の制度を利用して通信制短大・大学で勉強しました。
Webレターで文書の発送を簡単に
印刷や封入の必要がない日本郵便のサービス「Webレター」で文書発送の手間を大幅に削減できました。
ファーエンドテクノロジーからのお知らせ(2022/05/25更新)
月例Redmineセミナー 「Redmineプラグイン・テーマの紹介〜ファーエンドテクノロジー開発〜」【2022/06/24開催】
ファーエンドテクノロジーが開発するRedmineのプラグインやテーマを紹介するセミナーを開催します。
ブランドパートナーに5年連続で島根県在住のモデル ユイさんを起用
ユイさん(モデルスタジオミューズ所属)をファーエンドテクノロジーの2022年度ブランドパートナーとして継続して起用します。今年度で5年目となります。
「FAR END NEWS」2022年第2号 発行
広報紙「FAR END NEWS」2022年第2号を発行しました。弊社サービスの運用・サポートに携わっているスタッフや弊社の取り組みをご紹介します。
利用規約変更のお知らせ
「My Redmine サービス利用規約」を変更いたしますので、利用規約第6条に基づきお知らせします。
Redmineの最新情報をメールでお知らせする「Redmine News」配信中
新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け