【結論】
基本はPNGを使うと良いでしょう。理由として以下を挙げておきます。- 日本でのネット回線速度が向上し、都市圏では光回線なので画像容量を気にする必要性が下がっている。
- 最近のWEBデザインは、狭い色幅で広いグラデーションを使うケースが多いため、画像の質>容量を選択した方が印象が良くなる。
- 画像容量よりCSSやJavaScript、PHPなど、他の箇所での読み込み速度が影響しているケースが増えている。
画像形式の比較
- JPEG-フルカラー(1670万色)の画像を圧縮して軽くする形式、不透明度は使えない。
- GIF-256色までの画像を非圧縮で扱える形式。透明1色が使える。
- PNG8-256色までの画像を非圧縮で扱える形式。透明1色が使える。
- PNG24/32-フルカラーを非圧縮で扱える形式。さらに不透明度も使える。
JPEGの問題点
文字に背景ベタなどの画像を圧縮すると文字の周りが濁ってしまう。画質を上げるとGIFで書き出したより容量を超える場合がある。GIFの問題点
色数が低く透明1色のため写真には適さない。- 左がJPEG画質80で出したもの(6.89KB)
- 中央がJPEG画質100(11.1KB)
- 右がGIF(1.16KB)
PNGの問題点
- 書き出す内容によっては容量が大きくなりやすい。
- 不透明度を適用した画像はIE6で認識しないため、JavaScriptなどの簡易プログラムを実装する必要がある。
PNG24とPNG32の違い
PNG24はフルカラーのみ扱えます。PNG32はフルカラーで透明度が扱えます。PhotoshopやIllustratorではPNG24に対して不透明度を設定することができます。PNG24で書き出すときは不透明度を設定するため、結果PNG24とPNG32は同じとして扱います。
GIFとPNG8の違い
PNG8はGIFと違う変換方式で保存した形式で、違いはありません。しかし、容量はPNG8の方が1割ほど小さくなる傾向があるので、PNG8を使った方が良い場合があります。
上記データをPNG8で書き出したもの(979B) また、この他に最近のWEBデザインのよる影響として、色域の狭い階調でかけるグラデーションのため、色と色の境目がはっきり分かり汚く見えてしまうケースがあります。バンディング
最近テレビで見かけなくなった女芸人ではなく。昔ヒットしたゲームでもありません。グラデーションをかけたとき色の差が激しいため縞模様が強く出てしまう現象です。 分かりやすく色を青からオレンジでグラデーションした例。オレンジが強調され、よりグラデーションがきつく見えます。 PNG24で書き出し(615B)※PNG8の方が容量が大きかったのでこちらにしています。バンディングの回避法
- グラデーションの色数を多くする。
- 色の範囲を同系色にする。
トーンジャンプ
グラデーションの色域が狭いため、グラデーションがなめらかに見えなくなる現象。 横幅600pxの画像をグラデーションで左K15%、右K3%で出しています。トーンジャンプの回避法
- グラデーションの色数を多くする。
- フィルタで色を散らす。
- 画像書き出し時、ディザリングを使ってグラデーションをなめらかにする。 ※ディザリングは、色数に制限があるとき制限内の色を組み合わせてなめらかに見せる表示方法。
- Photoshopでは16bitにするとトーンジャンプが目立たなくなります。最終的に8bitにして書き出します。
まとめ
- 画像の書き出しはPNGで行う。
- 書き出す画像内容や形式によっては容量が変化するので、チューニングは必要。
- 色の境目が分かる場合にはフィルタなどで調整する。