Масштабирование изображений с помощью CSS: есть ли альтернатива webkit для -moz-crisp-edge?
У меня есть изображение размером 100x100 в пикселях. Я хочу показать его в два раза больше, поэтому 200x200, и я хочу сделать это с помощью CSS, а не (явно) с помощью сервера.
Уже несколько лет изображения сглаживаются во всех браузерах, а не в пиксельном масштабе.
Mozilla позволяет указать алгоритм: рендеринг изображения: -moz-crisp-edge; То же самое относится и к IE: -ms-interpolation-mode: ближайшее-соседство;
Любая известная альтернатива webkit?
3 ответа
К сожалению, похоже, что эта функция отсутствует в WebKit. Смотрите этот недавний отчет об ошибке:
WebKit теперь поддерживает директиву CSS:
image-rendering:-webkit-optimize-contrast;
Вы можете видеть, как он работает в действии, используя Chrome и последнее изображение на этой странице:
http://phrogz.net/tmp/canvas_image_zoom.html
Правила, используемые на этой странице:
.pixelated {
image-rendering:optimizeSpeed; /* Legal fallback */
image-rendering:-moz-crisp-edges; /* Firefox */
image-rendering:-o-crisp-edges; /* Opera */
image-rendering:-webkit-optimize-contrast; /* Safari */
image-rendering:optimize-contrast; /* CSS3 Proposed */
image-rendering:crisp-edges; /* CSS4 Proposed */
image-rendering:pixelated; /* CSS4 Proposed */
-ms-interpolation-mode:nearest-neighbor; /* IE8+ */
}
В дополнение к @Phrogz очень полезный ответ и после прочтения этого: https://developer.mozilla.org/en-US/docs/CSS/image-rendering
Кажется, что лучший CSS будет такой:
image-rendering:optimizeSpeed; /* Legal fallback */
image-rendering:-moz-crisp-edges; /* Firefox */
image-rendering:-o-crisp-edges; /* Opera */
image-rendering:-webkit-optimize-contrast; /* Chrome (and eventually Safari) */
image-rendering:crisp-edges; /* CSS3 Proposed */
-ms-interpolation-mode:bicubic; /* IE8+ */