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タイプを正しく設定すれば、ファイルの種類が自動で判定され、ユーザーはブラウザ上で即座にプレビューできます。
コメント
コメントを投稿