画像ファイルを,HTMLファイル内に埋め込み,1ファイルに統合する (BASE64を使ってファイル数を減らす方法)
画像など外部ファイルは,
HTMLの中に「文字列として埋め込む」ことができる。
このためには,BASE64エンコードの技術を使えばよい。
下記の文字列を,ブラウザのURL欄にコピペしてみよう。
PNG 画像が表示される。(画像の内容は,Linuxペンギンの絵)
data:image/png;base64,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
ペンギンの画像をBASE64エンコードすると,上記のような文字列になる。
この画像の出典:
タックス - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%B...
- タックス(英: Tux)は、Linuxオペレーティングシステムの公式マスコット
このような文字列に変換すれば,HTML内部に埋め込む事もできる。
imgタグの中に <img src="data:〜〜"> と書く。
そうすれば,ファイル数が減り,外部ファイルを用意しなくてすむ。
また,imgタグ内のURLを,JavaScriptで動的に書き換えることも可能だ。
その場合,「JavaScriptから画像を生成できる」ということになる。
画像ファイルを別個に準備する必要が無い。
このような「BASE64エンコード形式」の変換を,手軽に実行するバッチがある。
対象ファイルを下記のバッチにドラッグ・ドロップするだけ。
同一フォルダ上のテキストに,エンコード結果が出力される。
base64.bat
@if(0)==(0) echo. cscript.exe //nologo //E:JScript "%~f0" encode "%1" > "%~f0\..\encoded.txt" @echo 終了しました。 @pause GOTO :EOF @end /* ドラッグドロップされたファイルを,BASE64にエンコードするバッチ http://language-and-engineering.hatenablog.jp/entry/20101022/p1 */ // ----------------- コマンドライン引数 -------------- var action_type = WScript.Arguments.Unnamed(0); // encode or decode //log( action_type ); // ----------------- 関数 -------------- function log(s){ WScript.Echo( s ); } // エンコード実行 function base64encode( target_file_path ) { // ファイルをバイナリデータとして読み取り var stream = new ActiveXObject('ADODB.Stream'); stream.Type = 1; // binary stream.Open(); stream.LoadFromFile( target_file_path ); var binary_data = stream.Read( -1 ); // -1:read all // 新規XMLデータを作成 var xml = new ActiveXObject("Microsoft.XMLDOM"); xml.loadXML('<?xml version="1.0" ?> <root/>'); xml.documentElement.setAttribute("xmlns:dt", "urn:schemas-microsoft-com:datatypes"); // バイナリデータを格納するためのノードを作成 var node = xml.createElement("file-node"); node.dataType = "bin.base64"; // バイナリデータを格納 node.nodeTypedValue = binary_data; xml.documentElement.appendChild( node ); // そのノードからBASE64エンコード済み文字列を取り出す var base64encoded_text = node.text; return base64encoded_text; }; // ----------------- メイン処理 -------------- //if( action_type == "encode" ) var target_file_path = WScript.Arguments.Unnamed(1); //log( target_file_path ); var ret = base64encode( target_file_path ); // エンコード結果を改行なしで出力 log( "data:image/png;base64," + ret.replace( /\n/g, "" ) );
BASE64に関する解説:
バッチで,BASE64のエンコード+デコードする方法 (WSH/JScriptで,バイナリのファイルをテキスト符号化)
http://language-and-engineering.hatenablog.jp/entry/20101022/p1
- BASE64を使えば,バイナリのファイルをテキストデータ(英数字)に変換できる
小さい画像をbase64をかけてhtml内に埋め込み -
http://d.hatena.ne.jp/moogme/20090814/p3
- Webサイトの表示速度が遅い原因の1つが、沢山画像を使っていること。 画像自体をキャッシュしても、更新がないか確認するためのアクセスが足を引っ張っていることも
- サーバへのアクセスを無くすために、小さい画像はhtml内に埋め込むこと
画像をBase64に変換するツール (data URI scheme) - シングスブログ
http://blog.thingslabo.com/archives/0...
- Google のウェブ検索結果でウェブページのスクリーンショットに使われている data URI scheme。 data:[<mediatype>][;base64],<data>
- ウェブページに埋め込むことで HTTP リクエストを減らせるメリットがある
ブラウザでBase64エンコードされた画像をデコードして閲覧する - blue_ham_cake1024のブログ
http://blue-ham-cake1024.hatenablog.c...
- ブラウザのアドレスバーにdata:image/jpeg;base64,{{Base64文字列}}みたいな感じで入力して移動すると表示できる
- MIMEタイプのところを変えればPNGやGIFといった他の形式の画像や、テキストファイルなんかも表示できる
エンコード後のファイルサイズが133%になる事について:
BASE64のエンコード時のサイズについて | その他(メールサービス・ソフト)のQ&A【OKWave】
http://okwave.jp/qa/q202395.html
- BASE64のエンコードは3Byte(24bit)→4Byteに変換する。なのでBASE64でエンコードしたファイルは常に約33%ファイルサイズが増加する
メールサイズの上限が10MBなのに10MBの添付ファイルが送れない理由 - mikage014の日記
http://d.hatena.ne.jp/mikage014/20090...
- メールデータは一旦全てテキストデータに置き換えられて送信されます。 添付ファイル(バイナリデータ)をテキストに置き換えるときにサイズが大きくなってしまう
添付ファイルって、大きくならない? - PC説教講座
http://pctraining.s21.xrea.com/networ...
- どんなシステムでも扱うことのできる、「安全な」英数字や記号、合計64文字の組み合わせに情報の形を変換してしまう
- 64文字の組み合わせは、6ビット分の情報に相当。6ビット=2の6乗=64
関連する記事:
UTF8Nの複数テキストを,一斉に置換するバッチ (JScriptでUTF8Nのファイルを読み書き)
http://language-and-engineering.hatenablog.jp/entry/20090723/p1
JScript・WSHで、UTF-8でファイルの読み書きをする方法 (ADODB.Streamで文字コード変換するサンプルコード)
http://language-and-engineering.hatenablog.jp/entry/20090203/p1
WSH/JScriptで,XMLを読み込みする (コマンドラインからDOM操作)
http://language-and-engineering.hatenablog.jp/entry/20090720/p1