image-rendering
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年1月.
* Some parts of this feature may have varying levels of support.
image-rendering は CSS のプロパティで、画像を変倍するアルゴリズムを設定します。このプロパティは要素自身に適用され、他のプロパティで設定されるあらゆる画像、子孫要素に適用されます。
試してみましょう
image-rendering: auto;
image-rendering: smooth;
image-rendering: crisp-edges;
image-rendering: pixelated;
<section id="default-example">
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/lizard.png" />
</section>
#example-element {
height: 480px;
object-fit: cover;
}
ユーザーエージェントは、ページの作者が自然なサイズとは異なる寸法を指定したとき、画像を変倍します。変倍は、ユーザー操作 (ズーム) によって発生することもあります。例えば、画像の自然なサイズが 100×100px であって、実際の寸法が 200×200px (または 50×50px) であるとき、画像は image-rendering で指定されたアルゴリズムを使用して拡大 (または縮小) されます。このプロパティは拡大/縮小されない画像には効果がありません。
構文
/* キーワード値 */
image-rendering: auto;
image-rendering: smooth;
image-rendering: crisp-edges;
image-rendering: pixelated;
/* グローバル値 */
image-rendering: inherit;
image-rendering: initial;
image-rendering: revert;
image-rendering: revert-layer;
image-rendering: unset;
値
auto-
変倍のアルゴリズムはユーザーエージェントに依存します。バージョン 1.9 (Firefox 3.0) 以降では、Gecko は「バイリニア法」(bilinear) による再サンプリングを使用します(高品質)。
smooth-
画像は、画像の外見を最適化するアルゴリズムで変倍されます。具体的には、バイリニア補完などの色の「円滑化」が許容されるアルゴリズムで変倍されます。これは、写真のような画像を想定しています。
crisp-edges-
画像は、「最近傍法」 ("nearest neighbor") などのアルゴリズムで変倍され、画像のコントラストやエッジが維持されます。一般的に、ピクセルアートや行描画などの画像を意図通りに処理することを目的としており、不鮮明になったり色が滑らかになったりすることはありません。
pixelated-
画像は「最近傍法」 ("nearest neighbor") などのアルゴリズムで元の画像サイズの最も近い整数倍に変倍され、その後、滑らかな補間を使用して最終的な希望のサイズに画像が調整されます。これは、拡大解像度が元の整数倍でない場合に、変倍による画質の劣化を発生させることなく、「ピクセル化」された見た目を維持することを意図しています。
メモ:
optimizeQuality および optimizeSpeed の値は、初期の草稿で (SVG の仕様 image-rendering に似たものとして) smooth および pixelated の同義語として定義されていました。
メモ:
CSS 画像モジュールは、high-quality の値を image-rendering プロパティで、高品質の変倍を行うために定義していますが、これはどのブラウザーでも対応していません。
公式定義
| 初期値 | auto |
|---|---|
| 適用対象 | すべての要素 |
| 継承 | あり |
| 計算値 | 指定通り |
| アニメーションの種類 | 離散値 |
形式文法
image-rendering =
auto |
smooth |
high-quality |
pixelated |
crisp-edges
例
>画像の変倍アルゴリズムの設定
この例では、画像が 3 回繰り返され、それぞれに異なる image-rendering 値が適用されています。
CSS
.auto {
image-rendering: auto;
}
.smooth {
image-rendering: smooth;
}
.pixelated {
image-rendering: pixelated;
}
.crisp-edges {
image-rendering: crisp-edges;
}
結果
仕様書
| Specification |
|---|
| CSS Images Module Level 3> # the-image-rendering> |
| Scalable Vector Graphics (SVG) 2> # ImageRendering> |