SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

これから身につけるWebサイト高速化テクニック

Webサイト高速化に必要な画像形式の基礎知識

これから身につけるWebサイト高速化テクニック(3)

  • X ポスト
  • このエントリーをはてなブックマークに追加

SVG(Scalable Vector Graphics)

 最後にベクター形式のSVGについて紹介します。SVGは2001年9月4日にSVG 1.0が W3Cから勧告されました。後にHTML5に関連してSVGの注目度が高まり、現在ですべてのモダンブラウザが対応しています。

 ちなみにInternet Explorerではバージョン9から対応しています。

SVGの特徴

 SVGはXMLで記述されたベクターデータです。拡大・縮小しても劣化がないというラスターにはない利点があり、さらにレイヤー機能を持つのが特徴です。

 ラスター形式と違い、ピクセルごとにデータを持たずアンカーポイントを基準にオブジェクトの形が計算され描画されます。そのため、どれだけ大きく引き延ばしてもファイルサイズは変わりません。ただし、何層ものレイヤーと複雑なオブジェクトで作られたSVGの場合はファイルサイズが肥大化してしまうこともあるので注意しましょう。

SVGのソースコード

 SVGがどのようなXMLでできているのか、SVGファイルをテキストエディタで開いて確認してみましょう。

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
      y="0px" width="595.28px" height="603.529px" viewBox="0 0 595.28 603.529" enable-background="new 0 0 595.28 603.529"
      xml:space="preserve">
<rect x="211.411" y="252.941" fill="#8FC31F" width="287.06" height="287.059"/>
<polygon fill="#E83828" points="163.867,309.309 306.329,62.558 448.791,309.309 "/>
<circle fill="#036EB8" cx="197.293" cy="366.47" r="142.941"/>
</svg>

 <rect /> <polygon /> <circle />とオブジェクトが定義されていることがわかります。これらのオブジェクトはJavaScriptから操作できます。

 ちなみに、SVGはIllustratorを使うことで簡単に書き出すことができます。

拡大縮小に強いSVG

 ラスター形式とSVGの違いは、拡大してみるとよく分かります。ラスター形式は拡大すると荒れてしまいますが、SVGは拡大しても滑らかです。

ラスター形式とベクター形式を拡大した時の比較(左:ラスター形式、右:SVG)
ラスター形式とベクター形式を拡大した時の比較(左:ラスター形式、右:SVG)

SVGが向いている用途

  • JavaScriptで動的に変化するグラフ
  • 複数のサイズでアイコンを用意しなければならない場合

画像別の対応ブラウザ

 上記で紹介した画像形式について、ブラウザ対応表を作ってみました。バージョン表記のないものは特に問題にならないので最新のバージョンを指します。

形式 Chrome Firefox Safari Mobile Safari Android IE
バージョン iOS6 iOS5 iOS4 4.0 3.0 2.0 10 9 8 7 6
GIF
JPEG
PNG 8
PNG 24
PNG 32 ×
SVG × × × × ×

その他の画像形式

 上記で紹介したもの以外にも、さまざまな画像形式があります。普及には至っていませんが、Googleが開発しているWebPという形式があり、今後利用する機会が訪れるかもしれません。

WebP

 WebP(ウェッピー)はGoogleが開発している画像フォーマットです。JPEGやPNGに比べ圧縮率が高く、可逆圧縮・非可逆圧縮のどちらにも対応しています。

 残念ながら、今のところGoogle ChromeとAndroidでしか利用できないので、実用には向きません。

その他

 その他にも多くの画像形式があります。気が向いた時に調べてみてはいかがでしょうか?

  • TIFF(Tagged Image File Format)
  • Windows bitmap(Microsoft Windows Bitmap Image)
  • RAW(Raw image format)
  • PostScript
  • PICT(QuickDraw Picture)

色深度とファイルサイズの関係

 最後に画像の色深度とファイルサイズが、どのように関係するかについて触れておきます。

 色深度(いろしんど)とは、ピクセルごとのビット数を表します。色深度が上がれば1ピクセルごとのビット数も増えるので、見た目は同じでもファイルサイズが増えます。

 例をみてみましょう。

PNG-8/24/32の場合

 100×100pxの画像をそれぞれ書き出してファイルサイズを比較してみます。

カラータイプ サンプル マット(カラー) ファイルサイズ
PNG-8
有り(#ffffff) 212Byte
PNG-24
有り(#ffffff) 422Byte
PNG-32
有り(#ffffff) 444Byte

 同じ見た目のPNGでも、色深度が違うだけでファイルサイズが大きく違います。

 1ピクセルごとのビット数が増えるわけですから、画像サイズが大きいほど色深度の差によるファイルサイズの違いも大きくなります。

 色深度のことをよく考えて書き出しを行いましょう。

まとめ

 今さらな情報も多々ありますが、意外と知らなかったことが多いのではないでしょうか? 自分でまとめていても勉強になることがありました。

 今回のポイントをWebデザイナーの視点でまとめます。画像形式やカラータイプによって画像の向き不向きがあります。適切な画像形式を選択し、色深度を画像のタイプに合わせて調節することで、ファイルサイズを抑えることが可能です。それぞれの画像形式の特性を理解し、画像の品質を保ちながらファイルサイズを抑えるテクニックを身につけましょう。

 次回は本記事で学んだ画像形式の基礎知識を使い、Photoshopを使った最適な画像書き出しの基本について解説します。

用語解説

  • 可逆圧縮形式:元のデータにビット単位で完全に復元できる形式
  • 非可逆圧縮形式:元のデータに近い状態に復元できる形式
  • アルファチャネル:一般的に不透明度を表す
  • 段階的表示:GIFやPNGのインターレースは画像を一定の区切りで飛び飛びに転送し段階的に表示する。また、JPEGのプログレッシブはDCTの低域から転送し低解像度から徐々に高解像度にしていくこと
  • インデックス化:画像内の色やアルファをインデックス配列で管理し画像を表現する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
これから身につけるWebサイト高速化テクニック連載記事一覧

もっと読む

この記事の著者

野中 龍一(クラスメソッド株式会社)(ノナカ リュウイチ(クラスメソッドカブシキガイシャ))

クラスメソッドで企画、制作、運用までやるWebマスター。Webデザイン、Webサイト高速化、広義のHTML5、JavaScript、jQuery、CSS3、PHP、AWSを広く浅くやってます。クラスメソッド開発ブログを作ってる中の人。http://dev.classmethod.jp/author/nonaka-ryuichi/

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7138 2013/05/23 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング