В случае, если кто-то когда-нибудь снова наткнется на это (например, я), Webkit поддерживает значение -webkit-optimize-contrast
для image-rendering
, которое (в настоящее время) является реализацией апскейлинга ближайшего соседа. Может применяться как к изображениям, так и к полотнам.
Вот пример того, как это происходит.
.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">
При такой настройке Webkit Safari и Gecko / Firefox увеличат пространство холста 16x16 и маленькое изображение до 128x128 с помощью алгоритма ближайшего соседа.
ОБНОВЛЕНИЕ В ответе изначально говорилось, что браузеры Webkit поддерживают это; фактически с 2011-12-24 он работает с Safari в Mac OS и Chrome в Mac OS, но не с Chrome one Windows (Safari в Windows не был проверен), как указано в выпуск 106662 Chromium багтрекер . Лексически Chrome в Windows будет принимать значение -webkit-optimize-contrast
в таблице стилей CSS, но это не будет иметь никакого эффекта. Я ожидаю, что когда-нибудь он сработает, и этот метод будет правильным способом увеличения масштаба ближайшего соседа, но сейчас использование этого метода означает, что пользователям Windows Chrome придется жить с размытостью.