javascript – Canvas中最近邻的渲染

前端之家收集整理的这篇文章主要介绍了javascript – Canvas中最近邻的渲染前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个精灵,使用sprite sheet动画.他只有16×16,但是我想把他放大到64×64左右,它的像素都是好的!

alt text http://i30.tinypic.com/2nu243.jpg

结果是可怕的,当然浏览器是反锯齿的. :/

谢谢!

解决方法

如果有人再次绊倒(像我一样),Webkit支持图像渲染的-webkit优化对比度值,(当前)是最近邻近放大的实现.它可以应用于图像和画布.

这是一个例子.

.nn128 {
    width: 128px;
    height: 128px;
    image-rendering: -moz-crisp-edges;
    image-rendering: -webkit-optimize-contrast;
}

<canvas class="nn128" width="16" height="16"></canvas>
<img src="path/to/small/image.png" alt="Small image" class="nn128">

通过此设置,WebkitSafari和Gecko / Firefox将使用最近邻的算法将16×16画布空间和小图像放大到128×128.

更新答案最初表示Webkit浏览器支持这一点;事实上,截至2011-12-24,它适用于Mac OS上的Safari和Mac OS上的Chrome,但不适用于Chrome 1 Windows(Windows上的Safari未经验证),如Issue 106662 of the Chromium bug tracker所述.接受CSS样式表中的-webkit-optimize-contrast值,但不会有任何影响.我的期望是有一天会有效,而这种方法将是获得最近邻居升级的正确方法,但是现在使用这种方法意味着Windows Chrome用户将不得不忍受模糊.

猜你在找的JavaScript相关文章