Режим интерполяции изображений в Chrome/Safari?

Мне нужно сделать рендер изображения с изменением размера ближайшего соседа, а не бикубическим способом, который используется в настоящее время. В настоящее время я использую следующее:

ms-interpolation-mode: nearest-neighbor;
image-rendering: -moz-crisp-edges;

Это работает в IE и Firefox, но не в Chrome и Safari. Есть ли альтернативы webkit или любой другой способ достижения этого эффекта?

3 ответа

Решение

Изменить: теперь это возможно с image-rendering: -webkit-optimize-contrast; ,

https://developer.mozilla.org/en-US/docs/CSS/image-rendering

Это не работает в текущих версиях Chrome, вот несколько полезных ссылок:


Я не думал, что есть выход.

И какой-то быстрый поиск в Google почти подтверждает это; лучший результат Google для интерполяции изображений webkit:

http://code.google.com/p/chromium/issues/detail?id=1502

Отмечено в сентябре 2008 года и до сих пор не решено.

Также: https://bugs.webkit.org/show_bug.cgi?id=40881


Если бы мне это было нужно, я бы, вероятно, написал скрипт PHP для динамического масштабирования изображений с использованием ближайшего соседа.

Это будет работать в любом браузере, но тогда у вас есть все эти дополнительные затраты на обработку и передачу.

Я только что попробовал это:

img {image-rendering: pixelated;}

И это прекрасно работает на Chrome 39.0.2145.4 dev-m

Теперь вы можете установить алгоритм, используемый при выполнении drawImage

         ctx.imageSmoothingQuality = "high"

источник: https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/imageSmoothingQuality

Другие вопросы по тегам