--- title: image-rendering slug: Web/CSS/image-rendering tags: - CSS - CSS プロパティ - CSS 画像 - Reference - image-rendering translation_of: Web/CSS/image-rendering ---
CSS の image-rendering
プロパティは、画像を拡大縮小するアルゴリズムを設定します。このプロパティは要素自身に適用され、他のプロパティで設定されるあらゆる画像、子孫要素に適用されます。
{{Glossary("User agent", "ユーザーエージェント")}}は、ページの作者が自然な寸法とは異なる寸法を指定したとき、画像を拡大縮小します。拡大縮小は、ユーザー操作 (ズーム) によって発生することもあります。例えば、画像の自然な寸法が 100×100px
であって、実際の寸法が 200×200px
(または 50×50px
) であるとき、画像は image-rendering
で指定されたアルゴリズムを使用して拡大 (または縮小) されます。このプロパティは拡大/縮小されない画像には効果がありません。
/* キーワード値 */ image-rendering: auto; image-rendering: crisp-edges; image-rendering: pixelated; /* グローバル値 */ image-rendering: inherit; image-rendering: initial; image-rendering: unset;
auto
smooth
{{Experimental_Inline}}high-quality
{{Experimental_Inline}}smooth
と同等ですが、より高品質な設定です。システムのリソースが制約されている場合、どの画像の品質をどの程度低下させるかを検討するとき。 high-quality
の画像は他の値よりも優先されます。crisp-edges
pixelated
auto
と同じになります。メモ: optimizeQuality
および optimizeSpeed
の値は、初期の草稿で (SVG の仕様 {{SVGAttr("image-rendering")}} に似たものとして) smooth
および pixelated
の同義語として定義されていました。
<div> <img class="auto" alt="auto" src="https://mdn.mozillademos.org/files/2765/blumen.jpg" /> <img class="pixelated" alt="pixelated" src="https://mdn.mozillademos.org/files/2765/blumen.jpg" /> <img class="crisp-edges" alt="crisp-edges" src="https://mdn.mozillademos.org/files/2765/blumen.jpg" /> </div>
img { height: 200px; }
.auto { image-rendering: auto; } .pixelated { -ms-interpolation-mode: nearest-neighbor; image-rendering: pixelated; } .crisp-edges { image-rendering: -webkit-optimize-contrast; image-rendering: crisp-edges; }
{{EmbedLiveSample('Examples')}}
メモ: 実際の仕様では、 pixelated
と crisp-edges
の規則を組み合わせることで、お互いにある程度のフォールバックを提供することができます。 (実際の規則にフォールバックを追加するだけです) Canvas API は手動の画像データ操作または imageSmoothingEnabled
によって pixelated
の代替ソリューション を提供することができます。
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName("CSS3 Images", "#the-image-rendering", "image-rendering")}} | {{Spec2("CSS3 Images")}} | 初回定義 |
{{CSSInfo}}
{{Compat("css.properties.image-rendering")}}
メモ: 仕様書の例にあるようなピクセルアートの拡大縮小には crisp-edges
を使うことが想定されていますが、実際にはどのブラウザーも (2020年1月時点で) 対応していません。 Firefox では、 pixelated
は最近傍法として解釈されますが、 auto
と crisp-edges
はトリリニア法または線形で補間されます。
Chromium と Safari (WebKit) での動作については、 GetInterpolationQuality
関数と CSSPrimitiveValue::operator ImageRendering()
をそれぞれ参照してください。