所以我最近遇到了这个:http : //www.nicalis.com/
我很好奇:有没有办法用较小的图像来做这种事情?我的意思是,它是像素艺术,而不是使用每个像素大小增加四倍的图像,我们不能用代码拉伸它们吗?所以我开始尝试让它发生。
我尝试了 CSS、Javascript 甚至 HTML,但都没有奏效。它们都非常模糊(像这样:http : //jsfiddle.net/nUVJt/2/),这让我想到了我的问题:你能在没有任何抗锯齿的情况下在浏览器中拉伸图像吗?
我愿意接受任何建议,无论是使用画布、jQuery、CSS3 还是其他任何建议。
谢谢您的帮助!
编辑:现在有更好的方法来做到这一点!一种稍微不那么黑客的方式!这是魔法:
.pixelated {
image-rendering: -moz-crisp-edges;
image-rendering: -o-crisp-edges;
image-rendering: -webkit-optimize-contrast;
-ms-interpolation-mode: nearest-neighbor;
image-rendering: pixelated;
}
这将停止所有现代浏览器中的抗锯齿。它甚至可以在 IE7-8 中工作,但不能在 9 中工作,不幸的是,我不知道在 9 中有什么方法(除了下面概述的画布黑客)。以这种方式这样做比使用 JS 快多少甚至都不好笑。以下是有关这些的更多信息:https : //developer.mozilla.org/en-US/docs/CSS/Image-rendering
EDIT2:因为这还不是官方规范,所以它不是很可靠。Chrome 和 FF 似乎都停止支持它,因为我写了上面的内容(根据下面提到的这篇文章),这真的很烦人。我们可能还得再等几年才能真正开始在 CSS 中使用它,这真的很不幸。
最终编辑:现在有一种官方方法可以做到这一点!有一个名为 的新属性image-rendering
。它在CSS3 规范中。支持现在非常不稳定,但Chrome 刚刚添加了支持,所以不久我们就可以说它image-rendering: pixelated;
可以在所有地方工作(yaayy 常青浏览器!)