スキップしてメイン コンテンツに移動

GAS Blob画像変換

GAS Blob画像変換

Blob操作の基礎

Google Apps Script(GAS)でファイルを扱う際、Blobは不可欠なデータ型です。getBlob()メソッドで取得したBlobは、getContentType()でMIMEタイプを確認できます。例えば、Googleドライブから画像を取得し、MIMEタイプを判定するコードは以下のようになります。

var file = DriveApp.getFileById('FILE_ID');
var blob = file.getBlob();
var mime = blob.getContentType(); // 'image/png' など

Blobはバイナリデータを保持するため、画像やPDF、Excelなど多様なファイルを扱う際に便利です。MIMEタイプを正しく判定することで、後続の処理(例:メール添付や外部APIへの送信)を安全に行えます。

画像処理とファイル変換

Blobを利用した画像処理は、サイズ変更やフォーマット変換が可能です。Blob#setContentType()でMIMEタイプを変更し、Blob#getBytes()でバイナリデータを取得して外部サービスへ送ることもできます。以下はPNGをJPEGに変換するサンプルです。

var pngBlob = file.getBlob();
var jpegBlob = Utilities.newBlob(pngBlob.getBytes(), 'image/jpeg', 'converted.jpg');

また、Google Apps ScriptのUrlFetchAppを使って画像を外部APIに送信し、AIでリサイズやフィルタリングを行うことも可能です。バイナリデータをそのまま送ることで、転送コストを抑えつつ高品質な画像処理が実現します。

添付ファイルのアップロード実践

GASでメールに添付ファイルを追加する際、BlobをそのままMailApp.sendEmail()に渡すだけで簡単に実装できます。以下は、ドライブ上のPDFをメールに添付する例です。

var pdfBlob = DriveApp.getFileById('PDF_ID').getBlob();
MailApp.sendEmail({
  to: 'recipient@example.com',
  subject: 'PDF添付',
  body: '添付ファイルをご確認ください。',
  attachments: [pdfBlob]
});

さらに、アップロード先をGoogleドライブに変更したい場合は、DriveApp.createFile()でBlobを直接保存できます。MIMEタイプを正しく設定すれば、ファイルの種類が自動で判定され、ユーザーはブラウザ上で即座にプレビューできます。

この記事はAIによって作成されました。

コメント