En caso de que alguien se tropiece con esto de nuevo (como yo), Webkit admite un valor -webkit-optimize-contrast
para image-rendering
, que (actualmente) es una implementación de la ampliación de vecino más cercano. Se puede aplicar tanto a imágenes como a lienzos.
Aquí hay un ejemplo de cómo funciona.
.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">
Con esta configuración, tanto
Webkit
Safari y Gecko/Firefox ampliará el espacio de la tela de 16x16 y la imagen pequeña de 128x128 con el algoritmo del vecino más cercano.
ACTUALIZACIÓN La respuesta indicó inicialmente que Webkit navegadores apoyaron esta; de hecho, desde 2011-12-24, funciona con Safari en Mac OS y Chrome en Mac OS, pero no con Chrome uno de Windows (no se verificó Safari en Windows), como se indica en Issue 106662 of the Chromium bug tracker. Léxicamente, Chrome en Windows aceptará el valor -webkit-optimize-contrast
en una hoja de estilo CSS, pero no tendrá ningún efecto. Tengo la expectativa de que funcione algún día, y este método será la manera correcta de obtener la ampliación de vecino más cercano, pero por ahora, usar este método significa que los usuarios de Windows Chrome tendrán que vivir con la visión borrosa.
Véase también mi respuesta a [esta pregunta] (http://stackoverflow.com/questions/4875850/how-to-create-a-pixelized-svg-image-from-a-bitmap/4879849) que muestra cómo usar JavaScript + Canvas para usar el vecino más cercano en cada navegador. – Phrogz
La respuesta vinculada en el comentario anterior es mucho más completa – sfridman