Site cover image
HTMLに画像データを埋め込む「Data URIスキーム」の使い方

HTMLで画像を表示したいときは<img>タグのsrc属性に画像のソースURLを指定するのが一般的です。

しかしData URIスキーム(Data URI scheme)*1 を使えば、src属性に画像そのもの(バイナリ)を埋め込むことができます。

このエントリでは、Data URIスキームを使ってimgタグのsrc属性に画像バイナリを埋め込む方法を、簡単なサンプルコードと共に説明します。

Image in a image block

Data URIスキームではsrcの値を次のようなフォーマットで指定します。

data:[<MIME-type>][;charset=<encoding>][;base64],<data>

例えばGIF画像だと次のようになります。

src="data:image/gif;base64,xxx..."

Data URIスキームで画像などのファイルを埋め込む特徴は、次のようなものがあります(抜粋)。

  • URLを指定するのに比べてHTTPリクエストの回数を減らせる
  • Data URIスキームによって埋め込まれた画像やファイルはキャッシュされない

このことからData URIスキームは、何度も表示する画像よりも、一度しか表示しない画像に向いていると言えそうです。

最後に、画像バイナリをBase64エンコードするRubyのサンプルコードを載せておきます。

require "base64"
bin = File.read("image.gif")
str = Base64.strict_encode64(bin) # Base64.encode64 では改行が挿入されるため
data_uri_scheme = "data:image/gif;base64,#{str}"

以上です。

このエントリでは、Data URIスキームを使ってimgタグのsrc属性に画像バイナリを埋め込む方法を、簡単なサンプルコードと共に説明しました。

  • 1:Data URLスキームと言うこともある

Thank you!
Thank you!
URLをコピーしました

コメントを送る

コメントはブログオーナーのみ閲覧できます