App Script×ImgAppで簡単!Google Drive上の複数画像を一括リサイズする方法

こんにちは、白々さじきです。

お久しぶりです。私事が忙しく、最近投稿できていませんでした。

今回は、App Scriptを使って複数の画像をまとめてリサイズする方法をご紹介します。

完成状態

まず、今回のリサイズに関して下記のような手順で行えるようにします。

  1. 入力フォルダ(画像を入れるフォルダ)に画像を入れる
  2. 今回作成するApp Scriptが入っているスプレッドシートを開いて、ボタンを押す
  3. 出力フォルダ(画像を出力するフォルダ)に画像が入る

この状態を目指します。

事前準備

Google Drive 上に、以下のフォルダを2つとスプレッドシートを1つ作成してください。

フォルダ名は「入力用」、「出力用」、スプレッドシートは「画像変換」という名前で作成します。

下記のようなイメージです。これで事前準備は完了です。

App Scriptの部分

App Scriptは、スプレッドシートの拡張機能から選ぶことで開くことができます。

ImgAppのインストール

今回は、ImgAppという外部のライブラリを使用します。App Scriptの左横のライブラリの+ボタンをクリックすると下記のようなポップアップが出ます。

ライブラリのスクリプト ID 欄に、以下の文字列を貼り付けてください。

1T03nYHRho6XMWYcaumClcWr6ble65mAT8OLJqRFJ5lukPVogAN2NDl-y

もしScript IDが異なる場合は、ImgAppの「How to install」の「Script ID is」以降の文面を入れてください。

これでImgAppのインストールは終わりです。

App Script

今回使用するApp Scriptは下記です。

// 入力フォルダ(画像を入れるフォルダ)
const IN_FOLDER_ID = '入力フォルダID';
// 出力フォルダ(リサイズ後の画像が出てくるフォルダ)
const OUT_FOLDER_ID = '出力フォルダID';


function resizeFunction() {
  // フォルダを取得
  const in_folder = DriveApp.getFolderById(IN_FOLDER_ID);
  const out_folder = DriveApp.getFolderById(OUT_FOLDER_ID);

  let files = in_folder.getFiles();

  while (files.hasNext()) {
    let file = files.next();

    // ファイルを横幅480pxでリサイズ
    const res = ImgApp.doResize(file.getId(), 480);

    // リサイズ後のファイルは「ファイル名+'_re'」で保存する
    let index = file.getName().lastIndexOf('.');
    let extension = file.getName().slice(index);
    let fileName = file.getName().slice(0, index);
    // ファイル名を変更したい場合は、ここを変更する。現在は、「ファイル名_re.ファイルの拡張子」で出力される。
    out_folder.createFile(res.blob.setName(fileName + '_re' + extension));
  }
}

「入力フォルダID」の部分に事前準備で作成した「入力用」のフォルダIDを入れてください。

「出力フォルダID」の部分に事前準備で作成した「出力用」のフォルダIDを入れてください。

フォルダID は、フォルダURL の “folders/” に続く文字列(末尾の英数字)です。

例:https://drive.google.com/drive/u/0/folders/ここが該当です。

また、今回はファイルを横幅480pxでリサイズするように設定していますが、コード内の「480」の部分を変更することで、お好みの横幅にリサイズすることができます。

リサイズ後のファイル名は、「元のファイル名_re.拡張子」になっています。変更する際はこちらを変更してください。

スクリプトを貼り付けたら、画面上部の「実行」ボタンをクリックして動作を確認しましょう。

実行

画面上にある実行をクリックすると下記のように出てくるので「権限を承認」をクリックしてください。

「権限を承認」をクリックし、実行するGoogleアカウントを選択した後、「詳細を表示」をクリックすると下記のようになります。

この後「無題のプロジェクト(安全ではないページ)に移動」をクリックしてください。

すると下記のように、権限を許可するページが出てくるので「すべて選択」をクリックを押した後に「続行」をクリックしてください。

続行をクリックすると、App Scriptが実行できるようになります。

まとめ

外部のライブラリを使用することで、画像リサイズの処理を簡単に実装することができました。

また、フォルダはIDさえ指定すれば場所を問わないため、柔軟に入出力先を変更できる点も便利です。

今後やってみたいこととして、画像を入れたら自動でリサイズできるようにしたり、定期実行したりできればと思います。

サポートのお願い

下記リンクからお買い物いただけると、ブログ運営のための費用が増え、有料サービスを利用した記事作成が可能になります。ご協力よろしくお願いします!

コメント

タイトルとURLをコピーしました