【GAS】画像ファイル形式を変換する

GASgmail

pngをjpegにファイル形式を変換したかったり、その逆の形式に変換したかったりと、日常業務で画像ファイルを形式を変更したいシーン意外と多くありませんか?

いくつかファイル形式を変換してくれるフリーサイトはありますが、運営者がよくわからない変換サイトに仕事で使う画像をアップロードするのも怖い(というかしないほうが良い)ですよね。

自身がデザイナーでもなければ社内の近いポジションにAdobeソフトを使っている社員もいない、でも形式変換したい。そんな方におすすめなのが「Google Apps Script(GAS)で変換してしまう」という方法です。

この記事では、「Google Apps Script(GAS)でpngやjpeg等の画像ファイルを相互に互換する方法」を紹介します。Google Driveに保存されている画像ファイルを読み込み、getAsメソッドを使ってBlob型にすることで相互変換が可能です。

GASで画像形式を変換するメリット

ネット環境さえあれば誰でも扱える

Google Apps Scriptは、Googleアカウント(G Suiteアカウント)上で扱う言語のため、通常のプログラミング言語と異なり環境設定が(ほぼ)不要で、ネットさえ繋がっていればどこでも取り扱うことができます。

その手軽さに加え、Gmail/Googleマップ/Googleドライブなどと親和性が高く、Slack/Chatwork/Twitterなど、外部サービスと連携することもできるので、作業効率アップにはぴったり。非エンジニア、特にデータを扱う機会が多いマーケティング担当におすすめな言語です。

自分のGoogle Workspaceで実行するから安全

自分のマイドライブ上にあるファイルやGメールと連携して処理を実行するため、外部の怪しいサイトを使わなくても多くの命令を実行できます。

そのため、仕事で扱う大事なファイル(画像/データなど)をセキュアな環境で処理することが可能です。

自動処理が得意で工数削減に役立つ

GASは様々な条件で実行トリガーを設定することができます。例えば「〇〇というドメインからメールが来たら本文をスプレッドシートに書き出す」「毎週月曜日の朝9時に〇〇のデータを集計する」と言った具合です。

今回の画像データ処理の例でいうと「Aというフォルダにpngデータを入れたら、自動でBというフォルダにjpegに変換したファイルを格納する処理を実行」なんていう命令も可能です。

日々いろいろな業務を処理しなければならない読者のみなさんの工数を削減して、時間効率を大幅に改善してくれること間違いありません。

コード実行の前準備

Google Driveに画像ファイルをアップロード

Google Driveのマイドライブ内に適当なフォルダを作成し、変換対象となる画像ファイルをアップロードします。また、後ほど使うフォルダIDをコピーしておきます。

GASエディタの立ち上げ

GASを画像ファイルと同じ場所で用意します(下記サンプルコードであればエディタの場所は本来どこでも問題ないです)。スプレッドシートを新規作成して分かり易い名前をつけておいてください。

GASのエディタはスプレッドシートのタブから「拡張機能」を選択すると表示されます。こちらのクリックしてエディタを立ち上げれば準備完了です。

サンプルコード

function myFunction() {
  
  const folderId = '[フォルダID]';
  const png = DriveApp.getFolderById(folderId).getFilesByName('komainu.png').next();  //ファイル名を指定して画像ファイルを読み込み
  const jpg = png.getAs(MimeType.JPEG);   // png→jpeg に変換

  DriveApp.getFolderById(folderId).createFile(jpg); 

}

実行後に先程作成したファイルを確認すると、無事jpegファイルが作成されていました。

まとめ

Google Apps Script(GAS)でpngやjpeg等の画像ファイルを相互に互換する方法をご紹介しました。

  • GASで画像ファイル形式を変換することは誰でもできて簡単
  • Google Driveに保存されている画像ファイルを読み込みBlob型で扱う
  • Blob型は、文字列や数字以外のプレーンテキスト以外のデータを扱えるObjectのこと
  • getAsメソッドを使ってファイル形式の変換できる
  • 互換性のある形式以外ではエラーになる

こちらで解説した記事を応用して、複数の画像ファイルを一括で変換する方法は下記の記事で解説しています。ご興味ある方はぜひご覧になってみてください。

この記事を書いた人

てつお
広告代理店出身、事業会社でWebマーケティングや開発の仕事をしている26歳です。プロフィール詳細はこちら
■Google広告認定資格|Google アナリティクス個人認定資格(GAIQ)|TOEIC920点