64

可能重复:
如何在没有抗锯齿的情况下拉伸图像

放大图像时是否可以以任何方式禁用抗锯齿?

现在,我得到的东西看起来像这样:

我得到了什么

使用以下 CSS 代码:

#bib {
    width: 104px;
    height: 104px;
    background-image: url(/media/buttonart_back.png);
    background-size: 1132px 1360px;
    background-repeat: no-repeat;
}

我想要的是这样的:

我所寻求的

简而言之,任何用于在放大图像时禁用抗锯齿的 CSS 标志,保留硬边缘。

也欢迎任何 javascript hack 或类似的东西。

(是的,我知道 php 和 imagemagick 也可以做到这一点,但更喜欢基于 css 的解决方案。)

更新 建议如下:

image-rendering: -moz-crisp-edges;
image-rendering: -moz-crisp-edges;
image-rendering: -o-crisp-edges;
image-rendering: -webkit-optimize-contrast;
-ms-interpolation-mode: nearest-neighbor;

但这似乎不适用于背景图像。

4

2 回答 2

125

试试这个,这是在所有浏览器中删除它的修复程序。

img { 
    image-rendering: optimizeSpeed;             /* STOP SMOOTHING, GIVE ME SPEED  */
    image-rendering: -moz-crisp-edges;          /* Firefox                        */
    image-rendering: -o-crisp-edges;            /* Opera                          */
    image-rendering: -webkit-optimize-contrast; /* Chrome (and eventually Safari) */
    image-rendering: pixelated; /* Chrome */
    image-rendering: optimize-contrast;         /* CSS3 Proposed                  */
    -ms-interpolation-mode: nearest-neighbor;   /* IE8+                           */

}

资料来源:

http://nullsleep.tumblr.com/post/16417178705/how-to-disable-image-smoothing-in-modern-web-browsers

http://updates.html5rocks.com/2015/01/pixelated

吉塔实验室

于 2012-12-28T10:37:24.437 回答
8

仅适用于 Firefox的 CSS :

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

它对我有用(Firefox 16.0在此处输入图像描述

于 2012-12-28T10:32:02.307 回答