保持像素化图像在缩放时保持像素化

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。从 200 美元的免费额度 开始!

这只是一个简单的提醒,CSS 中有一个属性可以帮助控制图像在缩放时的行为:image-rendering

我们已经习惯了将图像缩放至大于其自然尺寸(上采样)会导致图像模糊的想法。尽管这很糟糕,但浏览器正在尽其所能通过算法将图像平滑到比其数据更多的像素上。但是,假设您真的不想这样做。假设图像已经呈像素化(像素艺术),或者您更喜欢像素化的上采样效果。

您可以做到!

img {
  image-rendering: pixelated;
  image-rendering: -moz-crisp-edges;
  image-rendering: crisp-edges;
}

有点尴尬的是,规范提供了三个值:autopixelatedcrisp-edges。对于像素艺术来说,pixelatedcrisp-edges 似乎对我来说效果相同,尽管规范中对它们进行了略微不同的描述pixelated 建议使用“最近邻”或类似的算法,而 crisp-edges 则没有那么具体)。

更尴尬的是,Chrome 仅支持 pixelated,而 Firefox 仅支持 crisp-edges,为了获得最广泛的浏览器支持,您必须将其添加前缀为 -moz-crisp-edges。幸运的是,您可以将它们全部组合在一起,似乎效果很好。

这是一个有和没有的示例,使用的是James T. 的一张图片。我在 Tumblr 上找到的

查看 CodePen 上 Chris Coyier (@chriscoyier) 编写的 像素化图像