Google Apps ScriptでURLから画像容量や幅・高さを取得する方法

GASでURLから画像容量や幅・高さを取得

GoogleスプレッドシートにはIMAGE関数というURLを入れれば、セルに画像を挿入できる関数があります。

そのため、シートに記載されている画像URLを参照してセルに画像を表示させることが簡単にできます。

例
=IMAGE("https://placedog.net/400/300/?id=1")

画像URLを取り扱う場合、画像容量(ファイルサイズ)、幅、高さなどもURLから参照したいこともありますが、残念ながらGoogleスプレッドには画像の容量、幅、高さを取得する関数はありません。

しかし、GAS (Google Apps Script) を使用すれば画像の容量、幅、高さを自作できるので、この記事では関数の作成方法について説明します。

URLから画像容量などを取得する関数作成

まずGoogleスプレッドシートのメニューの「拡張機能 => Apps Script」を選択します。

選択するとスクリプトエディタが表示されます。

画像の容量、幅、高さを簡単に取得するためにはImgAppライブラリが必要なので、スクリプトエディタの左側にあるライブラリの+を選択します。

すると「ライブラリの追加」が表示されますので、以下のImgAppのスクリプトIDを入力後に検索ボタンを押して追加を押してください。

1T03nYHRho6XMWYcaumClcWr6ble65mAT8OLJqRFJ5lukPVogAN2NDl-y
URLから画像容量などを取得する関数作成

ライブラリを追加したらスクリプトエディタで以下の画像容量などを取得するimgFunc関数を追加します。

function imgFunc(src, type) {
  const response = UrlFetchApp.fetch(src)
  const img = ImgApp.getSize(response.getBlob())
  
  if (type === 'width') {
    return img.width;
  } else if (type === 'height') {
    return img.height
  } else {
    return img.filesize
  }
}

この関数は第1引数に画像URL、第2引数に何も入力しない場合は画像容量(ファイルサイズ)を返します。

第2引数に "width" を指定すると幅、"height" を指定すると高さを返します。

=imgFunc($A2)
=imgFunc($A2, "width")
=imgFunc($A2, "height")

サンプルとしてimgFunc関数を使用したシートも用意しましたので、こちらを確認すればどのように使うのか、すぐに理解できます。

Google Apps ScriptでURLから画像容量や幅・高さを取得する方法

画像の容量、幅、高さを取得する関数のサンプル