image-rendering

Baseline 广泛可用 *

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

* 此特性的某些部分可能存在不同级别的支持。

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 指定的算法进行放大(或缩小)。此属性对未缩放的图像没有影响。

语法

css
/* Keyword values */
image-rendering: auto;
image-rendering: smooth;
image-rendering: crisp-edges;
image-rendering: pixelated;

/* Global values */
image-rendering: inherit;
image-rendering: initial;
image-rendering: revert;
image-rendering: revert-layer;
image-rendering: unset;

auto

缩放算法取决于用户代理。自版本 1.9(Firefox 3.0)以来,Gecko 使用双线性重采样(高质量)。

平滑

图像应使用能最大化图像外观的算法进行缩放。特别是,能够“平滑”颜色的缩放算法是可接受的,例如双线性插值。这适用于照片等图像。

crisp-edges

图像使用“最近邻”等算法进行缩放,以保留图像中的对比度和边缘。通常用于像素艺术或线条图等图像,不会出现模糊或颜色平滑。

pixelated

图像使用“最近邻”或类似算法缩放到原始图像大小的最近整数倍,然后使用平滑插值将图像调整到最终所需大小。这旨在保留“像素化”外观,同时避免在放大分辨率不是原始分辨率的整数倍时引入缩放伪影。

注意:早期草案中存在的 optimizeQualityoptimizeSpeed 值(以及来自其 SVG 对应属性 image-rendering)分别定义为 smoothpixelated 值的同义词。

注意:CSS 图像模块为 image-rendering 属性定义了一个 high-quality 值,以提供对更高质量缩放的偏好,但是,任何浏览器都不支持此值。

正式定义

初始值auto
应用于所有元素
继承性
计算值同指定值
动画类型离散

正式语法

image-rendering = 
auto |
smooth |
high-quality |
pixelated |
crisp-edges

示例

设置图像缩放算法

在此示例中,图像重复三次,每次应用不同的 image-rendering 值。

CSS

css
.auto {
  image-rendering: auto;
}

.smooth {
  image-rendering: smooth;
}

.pixelated {
  image-rendering: pixelated;
}

.crisp-edges {
  image-rendering: crisp-edges;
}

结果

规范

规范
CSS 图像模块第三级
# the-image-rendering
Scalable Vector Graphics (SVG) 2
# ImageRendering

浏览器兼容性

另见