見出し画像

【GAS】 Blobをなんとなく理解したい! Blobクラスのメソッドの巻 3/4

このページではBlobクラスが持っている全てではないですが、主なメソッドを紹介したいと思います。
紹介するメソッドを大まかに分けると、Blobデータの情報の、取得、編集とBlobデータ自体の複製(コピー作成)です。


このページでのコード内では、
名前:"sample_img.png"
データの型: PNGデータ
である画像のBlobデータである変数”blobData"を例に使っていきます。

Blobデータの情報を取得するメソッド

Blobデータが保持している、情報(データ名、データの型、バイトデータ)を取得出来るメソッドをまとめました。

名前を取得

● getName()

let blobName = blobData.getName();
console.log(blobName); // → "sample_img.png"

データの型(MimeType)を取得

● getContentType()

let blobType = blobData.getContentType();
console.log(blobType); // → "image/png" 

バイト(bytes)データの取得

● getBytes()

let blobByteList = blobData.getBytes();
console.log(blobByteList); // → "[ -1,-40,-1,-32,.....]" 1バイトである-128~128までの数値の配列が返ってくる

バイト配列の長さ=容量
バイト配列の長さがわかるとそのデータの容量がわかる。いわゆるbyte(1,000bytes→1KB, 1,000,000bytes→1MB)

console.log(blobByteList.length); // "20750" → 20750bytes -> 約21KB

バイトデータを文字列として取得

● getDataAsString()

let blobString = blobData.getDataAsString();
console.log(blobString); // 画像などのデータを文字列として表示しても文字化けした訳のわからない配列になる。

Blobデータの情報を編集するメソッド

Blobデータが保持している、情報(データ名、データの型、バイナリデータ)を編集するメソッドをまとめました。

名前を編集

● setName(新しい名前(string))

blobData.setName("new_img.png");
console.log(blobData.getName()); // "new_img.png"

データの型(MimeType)を変換

データを変更できるメソッドは2種類あり、違いは元のBlobデータのオブジェクト自体を変換するものと、別で変換したものを返すものがあります。具体的にみてみましょう。

● setContentType(新しいデータの型(MimeType)) :元のデータ自体を変換する

blobData.setContentType(MimeType.JPEG); 
console.log(blobData.getContentType); // → "image/jpg"

● getAs(変換したいデータの型(MimeType)):変換された別のBlobデータを返す

let newBlobData = blobData.getAs(MimeType.JPEG);

// 元のBlobデータの型は変わらない。 
console.log(blobData.getContentType()); // → "image/png"

// 変換されたBlobデータか確認できる。
console.log(newBlobData.getContentType()); // → "image/jpg"

バイトデータを設置する

個人的にはよくわからないが、-128~128の数値のバイトデータの配列を設置することができる。

● setBytes(バイトデータの配列)

blobData.setBytes([-10, 110, 75, -34]);
console.log(blobData.getBytes()); // → "[-10, 110, 75, -34]" 

データを文字列から設置する

こちらもよくわからないが、Blobのバイトデータを文字列から変更?設置?できる。

● setDataFromString(文字列)

blobData.setDataFromString("hello");
console.log(blobData.getBytes()); // → "[ 104, 101, 108, 108, 111 ]" -> "hello" をバイト配列にしと時のもの


Blobデータの複製(コピー)する

● copyBlob()

let newBlobData = blobData.copyBlob();
console.log(newBlobData.getName()); // → "sample_img.png"
console.log(newBlobData.getContentType()); // → "image/png"

次の記事:Blobデータでできることを、コードを交えて詳しく紹介


この記事が気に入ったらサポートをしてみませんか?