画像

image-rendering

image-rendering は、画像を拡大・縮小して描くときに、なめらかさとくっきりさのどちらを優先するかをブラウザに伝えます。ドット絵や QR コードをぼかさずに拡大したいときに使います。

構文

auto | smooth | high-quality | pixelated | crisp-edges

プレビュー

プリセット
右下の角をドラッグするとサイズを変えられます

コード

.box {
  background-image: url(/pixel-sample.png);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  image-rendering: pixelated;
}

コントロール

image-renderingpixelated
image-rendering

解説

値の意味

  • auto:ブラウザ任せです。初期値で、ふつうは色を混ぜてなめらかに拡大するので、小さな画像を大きくするとぼやけます。
  • smooth:写真のように、なめらかさを優先します。対応しているのは Firefox だけです。
  • pixelated:ドットの形を保ちます。縦横それぞれ、元の大きさの整数倍のうちいちばん近い大きさまでは隣のピクセルをそのまま広げ(ニアレストネイバー)、残りの端数だけなめらかに拡大します。
  • crisp-edges:輪郭とコントラストを保ち、色を混ぜたりぼかしたりしません。線画向けで、どう描くかはブラウザが決めます。Chrome・Edge は 148 から対応しています。

このページのプレビューでは、12×12 のドット絵を background-size: contain で箱いっぱいに拡大しています。

どの画像に効くか

その要素の画像すべてに効きます。<img> や <canvas> の中身のほか、背景画像やリストの記号の画像にも効きます。継承するので、親に書くと中の画像にもまとめて効きます。

気をつけること

  • 元の大きさのまま描くときは、どの値でも見た目は変わりません。拡大・縮小されるときだけ違いが出ます。
  • 仕様には、smooth と同じで画質をより優先する high-quality もありますが、今はどのブラウザも対応していないので、このページでは扱いません。

コメント