画像(jpgまたはpng)をbase64に変換すると、画像は大きくなりますか、それとも同じサイズになりますか?それはどれくらい大きいですか?
ウェブサイトでbase64でエンコードされた画像を使用することをお勧めしますか?
約37%大きくなります。
おおよそ、Base64でエンコードされたバイナリデータの最終サイズは、元のデータサイズの1.37倍に等しくなります。
base64エンコードする場合としない場合の本当に役立つ概要 David Calhoun.
基本的な回答= gzip圧縮されたbase64エンコードファイルは、ファイルサイズが標準バイナリ(jpg/png)にほぼ匹敵します。 Gzipされたバイナリファイルのファイルサイズは小さくなります。
Takeaway= UIアイコンなどをエンコードしてgzipすることにはいくつかの利点がありますが、大きな画像に対してこれを行うのは賢明ではありません。
Base64では大きくなります。
Base64は1バイトあたり6ビットを使用してデータをエンコードしますが、バイナリは1バイトあたり8ビットを使用します。また、Base64には少しパディングのオーバーヘッドがあります。 Base64は、非バイナリデータのみを正しく処理できるシステムでバイナリデータをエンコードするためにそもそも開発されたため、すべてのビットがBase64で使用されるわけではありません。
つまり、エンコードされた画像は約25%大きくなり、さらにパディングのオーバーヘッドが一定になります。
画像をbase64にエンコードすると、約30%大きくなります。
データURIスキーム に関するウィキペディアの記事の詳細を参照してください。
Base64でエンコードされたデータURIは、同等のバイナリよりもサイズが1/3大きくなります。 (ただし、HTTPサーバーがgzipを使用して応答を圧縮する場合、このオーバーヘッドは2〜3%に減少します)
base64-imagesのサイズ
Base64は64の異なる文字を使用し、これは2 ^ 6です。したがって、base64は8ビット文字ごとに6ビットを格納します。そのため、未変換データからbase64データへの割合は6/8です。これは正確な計算ではなく、おおよその見積もりです。
例:
48kbの画像は、base64に変換された画像として約64kbが必要です。
計算:(48/6)* 8 = 64
Linuxシステムの単純なCLI計算機:
$ cat /dev/urandom|head -c 48000|base64|wc -c
64843
または、画像を使用して:
$ cat my.png|base64|wc -c
base64-imagesおよびWebサイト
この質問は答えるのがはるかに難しいです。一般的に言えば、base64を使用すると、イメージが大きくなるほど感覚が低下します。ただし、次の点を考慮してください。
したがって、答えは次のとおりです。
Base64でエンコードされた画像を使用する場合、間違いなくより多くのスペースと帯域幅が必要になります。ただし、サイトに小さな画像が多数ある場合は、画像をbase64にエンコードしてHTMLに配置することにより、ページの読み込み時間を短縮できます。このようにして、クライアントブラウザーは画像に多くの接続を作成する必要はありませんが、画像をHTMLで保持します。